CVE-2026-55991
Received Received - Intake

Denial of Service in Unbound DNS Resolver

Vulnerability report for CVE-2026-55991, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-22

Last updated on: 2026-07-22

Assigner: NLnet Labs

Description

In NLnet Labs Unbound 1.22.0 up to and including 1.25.1, a remote unauthenticated client can trigger a libngtcp2 assertion (if compiled with assertions on) and terminate the entire Unbound process using a single DNS-over-QUIC (DoQ) connection and one normal DNS query. This is caused by an erroneous error value passed to libngtcp2. When 'ngtcp2_conn_writev_stream()' returns 'NGTCP2_ERR_STREAM_DATA_BLOCKED', Unbound continues to call 'ngtcp2_ccerr_set_application_error()' with a '-1' error value. The 'int' literal '-1' is implicitly converted to the function's 'uint64_t error_code' parameter as '0xFFFFFFFFFFFFFFFF'. The follow-on 'ngtcp2_conn_write_connection_close()' serialises that value as a QUIC variable-length integer; because '2^64-1' exceeds the 62-bit varint ceiling, 'ngtcp2_put_uvarintlen()' fails 'assert(n < 4611686018427387904ULL)' and the whole resolver process aborts. A remote, unauthenticated DoQ client can trigger this deterministically with a single QUIC connection by advertising 'initial_max_stream_data_bidi_local = 1' in its transport parameters and sending one DoQ query without ever reading the stream.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-22
Last Modified
2026-07-22
Generated
2026-07-22
AI Q&A
2026-07-22
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
nlnet_labs unbound to 1.25.1 (inc)
nlnet_labs unbound 1.25.2

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-195 The product uses a signed primitive and performs a cast to an unsigned primitive, which can produce an unexpected value if the value of the signed primitive can not be represented using an unsigned primitive.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in NLnet Labs Unbound DNS resolver versions 1.22.0 to 1.25.1 allows a remote unauthenticated attacker to crash the entire resolver process by exploiting a libngtcp2 assertion failure. The issue occurs when a malicious client establishes a DNS-over-QUIC (DoQ) connection and sends a single DNS query without reading the response stream.

Detection Guidance

This vulnerability can be detected by checking if Unbound DNS resolver versions 1.22.0 through 1.25.1 are running on your system. Use commands like 'unbound -v' or 'dpkg -l | grep unbound' to verify the version. Monitor for unexpected process terminations of Unbound when DoQ connections are active.

Impact Analysis

The vulnerability can cause the Unbound DNS resolver to crash, disrupting DNS resolution services for all users relying on the affected resolver. This leads to service outages and potential loss of access to network resources.

Compliance Impact

This vulnerability does not directly affect compliance with GDPR or HIPAA as it primarily causes a denial-of-service condition by crashing the Unbound resolver process. However, service disruption from a DoS could impact availability requirements under these regulations if DNS resolution is a critical service for systems handling personal or health data.

Mitigation Strategies

Immediately upgrade Unbound to version 1.25.2 or later. If upgrading is not possible, apply one of the two provided patches for Unbound 1.25.1. Alternatively, disable DNS-over-QUIC (DoQ) support in Unbound by setting 'doq-enabled: no' in the configuration file.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55991. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart