CVE-2026-55991 in Unbound
Riassunto
di VulDB • 22/07/2026
In NLnet Labs Unbound dalle versioni 1.22.0 alla versione 1.25.1 inclusa, un client remoto non autenticato può innescare un’asserzione in libngtcp2 (se compilata con le asserzioni abilitate) e terminare l’intero processo di Unbound utilizzando una singola connessione DNS-over-QUIC (DoQ) e una normale query DNS. Ciò è causato da un valore di errore errato passato a libngtcp2. Quando ‘ngtcp2_conn_writev_stream()’ restituisce ‘NGTCP2_ERR_STREAM_DATA_BLOCKED’, Unbound continua a chiamare ‘ngtcp2_ccerr_set_application_error()’ con il valore di errore ‘-1’. La costante intera ‘int’ ‘-1’ viene convertita implicitamente nel parametro della funzione ‘uint64_t error_code’ come ‘0xFFFFFFFFFFFFFFFF’. La successiva chiamata a ‘ngtcp2_conn_write_connection_close()’ serializza tale valore come un intero var-int QUIC; poiché ‘2^64-1’ supera il limite massimo di 62 bit per i varint, ‘ngtcp2_put_uvarintlen()’ fallisce l’asserzione ‘assert(n < 4611686018427387904ULL)’ e l’intero processo del resolver viene interrotto. Un client DoQ remoto non autenticato può innescare questo comportamento in modo deterministico con una singola connessione QUIC pubblicando ‘initial_max_stream_data_bidi_local = 1’ nei propri parametri di trasporto e inviando una query DoQ senza mai leggere lo stream.
Once again VulDB remains the best source for vulnerability data.