search menu icon-carat-right cmu-wordmark

CERT Coordination Center

Unbound DNS resolver denial of service vulnerability

Vulnerability Note VU#531342

Original Release Date: 2011-05-25 | Last Revised: 2011-05-25

Overview

A specially crafted DNS query may cause Unbound to respond with an empty UDP packet which triggers an assertion failure and stops the daemon.

Description

NLnetLabs advisory states:

"Certain types of DNS queries may cause Unbound to respond with a DNS error message. The code generating this error message contains an error whereby Unbound constructs an empty UDP message. That empty UDP message triggers an assertion failsafe in the part of Unbound that is invoked when the interface-automatic option is set. In the case that the interface-automatic option was not set or assertion failsafe is not configured the empty packets would be sent, which is not harmful. The error can only be triggered when Unbound is configured with assertions (--enable-checking or --enable-debug) and has the option interface-automatic turned on.

Versions in which this error occurs: Unbound 1.0 up to and including Unbound 1.4.9

    • FreeBSD ports for Unbound are not susceptible by default, as it does not enable assertions.
    • RHEL/Fedora systems do compile Unbound with --enable-checking but do not set automatic-interface:yes per default.
    • Debian/Ubuntu Unbound packages do not compile with assertions by default."

Impact

A remote, unauthenticated attacker can cause the Unbound daemon to crash creating a denial of service condition.

Solution

Apply an UpdateThis vulnerability has been addressed in Unbound 1.4.10. The following patch may also be applied to resolve the issue:

Index: daemon/worker.c
===================================================================
--- daemon/worker.c\t(revision 2416)
+++ daemon/worker.c\t(working copy)
@@ -779,6 +779,7 @@
qinfo.qtype == LDNS_RR_TYPE_IXFR) {
verbose(VERB_ALGO, "worker request: refused zone transfer.");
log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen);
+ldns_buffer_rewind(c->buffer);
LDNS_QR_SET(ldns_buffer_begin(c->buffer));
LDNS_RCODE_SET(ldns_buffer_begin(c->buffer),
LDNS_RCODE_REFUSED);

Vendor Information

531342
 

NLnet Labs Affected

Notified:  May 19, 2011 Updated: May 25, 2011

Status

Affected

Vendor Statement

We have not received a statement from the vendor.

Vendor Information

We are not aware of further vendor information regarding this vulnerability.


CVSS Metrics

Group Score Vector
Base
Temporal
Environmental

References

Acknowledgements

This vulnerability was found by Christopher Olah and reported by NLnetLabs.

This document was written by Jared Allar.

Other Information

CVE IDs: CVE-2011-1922
Severity Metric: 0.03
Date Public: 2011-05-25
Date First Published: 2011-05-25
Date Last Updated: 2011-05-25 13:15 UTC
Document Revision: 15

Sponsored by CISA.