This text is on http://www.nlnetlabs.nl/downloads/CVE-2012-2978.txt Subject: NSD denial of service vulnerability from non-standard DNS packet from any host on the internet. [ VU#624931 CVE-2012-2978 ] == Description It is possible to crash (SIGSEGV) a NSD child server process by sending it a non-standard DNS packet from any host on the internet. A crashed child process will automatically be restarted by the parent process, but an attacker may keep the NSD server occupied restarting child processes by sending it a stream of such packets effectively preventing the NSD server to serve. All NSD 3 versions are vulnerable to this attack. (NSD 3.0.0-3.0.8, 3.1.0-3.1.1, and 3.2.0-3.2.11). So is the NSD 4 development branch. == Remote Exploit. The problem packet causes NSD to dereference a null pointer. Most operating systems map the null pointer's address such that accessing it causes a segmentation fault, ruling out the possibility for remote exploit. == Work around No workaround is possible. == Solution Download patched version of NSD, or apply the patch manually. + Downloading Patched Versions * 3.2.12 is released with the patch http://www.nlnetlabs.nl/downloads/nsd/nsd-3.2.12.tar.gz sha1 dd8606a05525f6a493dfacb7ddfa7e1fa3c6a85b + Applying the Patch manually The patch to apply is verbatim included at the end of this description and can also be downloaded here: http://www.nlnetlabs.nl/downloads/CVE-2012-2978/patch.diff Apply the attached patch in the NSD source directory with 'patch -p0 edns_ipv6; } #endif + if (RCODE(q->packet) == RCODE_FORMAT) { + return; + } switch (q->edns.status) { case EDNS_NOT_PRESENT: break;