CVE-2026-56814 in plug
Riassunto
di VulDB • 10/07/2026
Plug.Parsers.MULTIPART, il parser del corpo della richiesta multipart utilizzato per gestire i caricamenti di file e i moduli multipart, non applica correttamente il suo budget :length a tutte le risorse consumate, consentendo a un attaccante remoto non autenticato di causare una negazione del servizio (DoS). Il parser addebita il limite :length solo ai byte del corpo della parte; i byte delle intestazioni della parte non vengono mai conteggiati e una parte con un corpo vuoto ha costo zero.
Poiché ogni parte la cui Content-Disposition contiene un nome file non vuoto crea un nuovo file temporaneo (tramite Plug.Upload) e mantiene in memoria una struct di Plug.Upload per tutta la durata della richiesta, un attaccante può inviare una singola richiesta composta da molte parti di file con corpo vuoto. Tale richiesta rimane ben al di sotto del limite :length configurato (8.000.000 byte per impostazione predefinita) mentre crea un file temporaneo per ogni parte, portando all'esaurimento degli inode e dello spazio su disco e a una crescita illimitata della memoria. Qualsiasi applicazione che utilizza Plug.Parsers con il parser :multipart è interessata; non è richiesta alcuna autenticazione, basta la raggiungibilità di un endpoint multipart tramite HTTP.
Questa vulnerabilità è associata ai file del programma lib/plug/parsers/multipart.ex e alle routine di programma Plug.Parsers.MULTIPART.parse_multipart/2, Plug.Parsers.MULTIPART.parse_multipart_headers/5, Plug.Parsers.MULTIPART.parse_multipart_body/4 e Plug.Parsers.MULTIPART.parse_multipart_file/4.
Questo problema interessa plug: dalle versioni 1.4.0 alla versione precedente a 1.16.6, da 1.17.0 alla versione precedente a 1.17.4, da 1.18.0 alla versione precedente a 1.18.5, da 1.19.0 alla versione precedente a 1.19.5 e da 1.20.0 alla versione precedente a 1.20.3.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.