FICHE CVE

CVE-2026-111103

Publiée le 2026-10-26 · Dernière modification le 2026-10-26

🇫🇷 EN BREF

Les versions 1.9.0 à 1.13.0 de Bandit sont concernées. Bandit est un serveur HTTP utilisé par le projet mtrudel pour gérer les requêtes web. Une faille dans son gestionnaire HTTP/2 ne nettoie pas correctement l'état de la connexion lorsqu'un type spécifique d'erreur de flux survient, ce qui permet au serveur d'oublier qu'il a déjà ouvert plusieurs requêtes actives.

Un attaquant distant non authentifié peut exploiter cette faille pour contourner les limites de ressources et lancer une attaque par déni de service, impactant ainsi la disponibilité du système. En envoyant des écritures TCP spécialement conçues, l'attaquant peut forcer le serveur à exécuter beaucoup plus de requêtes simultanées que ce que la configuration autorise. Cette opération est relativement facile à exécuter via le réseau et ne nécessite aucune interaction de l'utilisateur.

CVSS 4.08.2 ÉLEVÉE
Type de faiblesse
Publiée2026-10-26
Dernière modification2026-10-26

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Prérequis d'attaquePrésent
Privilèges requisAucun
Interaction utilisateurAucune
Confidentialité (système vulnérable)Aucune
Intégrité (système vulnérable)Aucune
Disponibilité (système vulnérable)Élevée
Confidentialité (système subséquent)Aucune
Intégrité (système subséquent)Aucune
Disponibilité (système subséquent)Aucune

RÉFÉRENCES

Description officielle du NVD (en anglais)

Improper Cleanup on Thrown Exception vulnerability in the HTTP/2 handler of mtrudel bandit allows an unauthenticated remote attacker to bypass per-connection resource limits via a single TCP write that carries several frames, one of which raises a stream error. When a frame raises StreamError partway through a chunk, Bandit.HTTP2.Handler.handle_data/3 sends RST_STREAM and continues with the connection state from before the chunk, dropping the rest of it. Streams opened by earlier frames in the chunk keep running their Plug calls, but the stream counts, last_stream_id, the rapid-reset timestamps, the HPACK decoder state and the buffer roll back, so max_concurrent_streams, max_requests and the rapid-reset limiter never see those streams. A client that sends one HEADERS frame more than max_concurrent_streams in each write has the extra refused and the others forgotten: with a limit of 10, five such writes run 50 Plug calls at once. This issue affects bandit: from 1.9.0 before 1.14.0.