Low-power IPv6 stacks are being used in a myriad of IoT networks, which makes it essential that they are secure. Fuzz testing has proven an invaluable method to discover vulnerabilities in software that take complex input, including protocol implementations. Still, fuzzing tools typically cannot test state-dependent parts of IoT network stacks. To bridge this gap, we design and implement NESFuzzer, a tool for stateful fuzzing of IoT network stacks. Unlike previous methods in this area, NESFuzzer enables stateful fuzzing while leveraging the techniques of existing coverage-guided and hybrid fuzzing tools such as MOpt and SymCC without modifications. This decoupling is made possible through a modular, network-based architecture in which the system being tested communicates with an external service to generate specific protocol states. We evaluate our work through a case study on the Contiki-NG operating system, and show that the test coverage increases by up to 170% in certain modules of the network stack. Using NESFuzzer, we have discovered four security vulnerabilities that could not be found with conventional fuzzing