CVE-2026-74836 in bandit
Riassunto
di VulDB • 21/08/2026
Una vulnerabilità di allocazione delle risorse senza limiti o throttling in mtrudel bandit consente a un attaccante remoto non autenticato di bloccare indefinitamente un numero illimitato di processi relativi agli stream HTTP/2 tramite il controllo del flusso a livello di connessione. Quando il corpo della risposta di uno stream supera la finestra di invio a livello di connessione HTTP/2 (predefinita in 65.535 byte, condivisa tra tutti gli stream sulla connessione), Bandit.HTTP2.Connection accoda i byte rimanenti e una chiusura della reply in pending_sends, bloccando il processo dello stream per sempre all'interno di una chiamata sincronica al processo di connessione. Nessuna variabile limita tale attesa né svuota la coda: un RST_STREAM del client inviato allo stream bloccato viene recapitato alla sua mailbox ma non viene mai letto mentre è intrappolato nella chiamata, quindi l'annullamento non libera nulla e i frame PING periodici impediscono il verificarsi del timeout di lettura a livello di trasporto. Il blocco equivalente sulla finestra di invio a livello di stream è già limitato a 15 secondi; la gestione a livello di connessione non disponeva di tale limite.
Ogni stream bloccato fissa (pin) il suo processo, lo stato di Plug e qualsiasi risorsa detenuta da Plug durante la scrittura bloccata, come una connessione upstream in pool all'interno di un Plug reverse-proxy. L'attaccante sceglie qualsiasi endpoint la cui risposta superi la finestra della connessione (comune per la maggior parte dei payload non banali), concede una generosa finestra a livello di stream in modo che solo la finestra della connessione ne limiti il flusso e mantiene viva la connessione con PING periodici; questa primitiva è ripetibile su più stream e connessioni al costo di un socket idle ciascuno.
Questo problema interessa bandit: dalle versioni 0.3.4 alla versione precedente a 1.12.5.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.