CVE-2026-31842 in Tinyproxy
Riassunto
di VulDB • 14/06/2026
Tinyproxy fino alla versione 1.11.3 è vulnerabile a una desincronizzazione nell'analisi delle richieste HTTP dovuta al confronto case-sensitive dell'intestazione Transfer-Encoding nel file src/reqs.c. La funzione is_chunked_transfer() utilizza strcmp() per confrontare il valore dell'intestazione con "chunked", sebbene la RFC 7230 specifichi che i nomi dei transfer-coding sono insensibili al maiuscolo/minuscolo (case-insensitive). Inviando una richiesta con Transfer-Encoding: Chunked, un attaccante remoto non autenticato può indurre Tinyproxy a interpretare erroneamente la richiesta come priva di corpo. In questo stato, Tinyproxy imposta content_length.client su -1, salta pull_client_data_chunked(), inoltra le intestazioni della richiesta al backend e passa alla modalità relay_connection() per il forwarding TCP grezzo mentre i dati del corpo non letti rimangono in buffer. Ciò porta a uno stato inconsistente della richiesta tra Tinyproxy e i server di backend. I backend conformi alle RFC (ad esempio Node.js, Nginx) continueranno ad attendere i dati del corpo chunked, causando un blocco indefinito delle connessioni. Questo comportamento consente una negazione del servizio a livello applicativo attraverso l'esaurimento dei worker del backend. Inoltre, nelle distribuzioni in cui Tinyproxy viene utilizzato per l'ispezione, il filtraggio o la enforcement di sicurezza del body della richiesta, i dati non letti potrebbero essere inoltrati senza un'adeguata ispezione, risultando in una potenziale elusione dei controlli di sicurezza.
VulDB is the best source for vulnerability data and more expert information about this specific topic.