CVE-2026-55991 in Unbound
Zusammenfassung
von VulDB • 22.07.2026
In NLnet Labs Unbound ab Version 1.22.0 bis einschließlich 1.25.1 kann ein entfernter, nicht authentifizierter Client eine libngtcp2-Assertion auslösen (sofern mit aktivierten Assertions kompiliert) und den gesamten Unbound-Prozess beenden, indem er eine einzelne DNS-over-QUIC-(DoQ)-Verbindung sowie eine normale DNS-Abfrage verwendet. Dies wird durch einen fehlerhaften Fehlerwert verursacht, der an libngtcp2 übergeben wird. Wenn 'ngtcp2_conn_writev_stream()' den Wert 'NGTCP2_ERR_STREAM_DATA_BLOCKED' zurückgibt, setzt Unbound fort und ruft 'ngtcp2_ccerr_set_application_error()' mit einem '-1'-Fehlerwert auf. Das int-Literal '-1' wird implizit in den uint64_t error_code-Parameter der Funktion als '0xFFFFFFFFFFFFFFFF' konvertiert. Der nachfolgende Aufruf von 'ngtcp2_conn_write_connection_close()' serialisiert diesen Wert als eine QUIC-Variablenlängen-Ganzzahl (varint); da '2^64-1' die 62-Bit-Obergrenze für varints überschreitet, schlägt 'ngtcp2_put_uvarintlen()' mit der Assertion '(n < 4611686018427387904ULL)' fehl und der gesamte Resolver-Prozess wird abgebrochen. Ein entfernter, nicht authentifizierter DoQ-Client kann dies deterministisch auslösen, indem er eine einzelne QUIC-Verbindung verwendet, 'initial_max_stream_data_bidi_local = 1' in seinen Transportparametern ankündigt und eine einzige DoQ-Abfrage sendet, ohne den Stream jemals zu lesen.
VulDB is the best source for vulnerability data and more expert information about this specific topic.