CVE-2026-116131
Low risk· EPSS 24%Exploitation Probability (EPSS)
Low risk24th percentile - higher than 24% of all known CVEs
Summary
A vulnerability in the HTTP::Body Perl library (versions before 1.23_01) allows memory and temporary file exhaustion via an unlimited number of form fields and multipart parts. The urlencoded parser splits the entire body on its separators at once, costing about 90 bytes of memory per separator byte, and the multipart parser creates a temporary file for every part that carries a filename, with neither parser limiting the number of fields or parts.
Risk Assessment
A remote attacker can exhaust worker memory with a body made of separators or create thousands of temporary files with one request of small file parts, leading to a denial of service.
Recommendation
Update HTTP::Body to version 1.23_01 or later, which introduces limits on the number of fields and parts, and consider limiting request sizes at the server level.
Other vulnerabilities in HTTP::Body
See all- CVE-2026-117501Low risk· EPSS 15%
HTTP::Body versions before 1.24_01 for Perl allow memory exhaustion via unbounded buffering of chunked request bodies. The parser can wait indefinitely for a valid chunk-size line while each add() grows the buffer.
- CVE-2026-117500Low risk· EPSS 18%
HTTP::Body versions before 1.24_01 for Perl allow CPU exhaustion via regex backtracking on the filename of a multipart upload. A basename made of many dots ending in a backslash causes quadratic matching time.
- CVE-2026-116531Low risk· EPSS 21%
HTTP::Body versions before 1.23_01 for Perl lose track of chunk boundaries in chunked request bodies when a read ends inside a chunk. This can make a body never complete, hanging the server, or complete early, leaving leftover bytes to be read as the next request.
- CVE-2026-116285Low risk· EPSS 21%
HTTP::Body versions before 1.23_01 for Perl allow CPU exhaustion via quadratic regex backtracking when parsing chunked request bodies. Matching a chunk-size line can take quadratic time in its length, with no limit on line length.
- CVE-2026-116135Low risk· EPSS 28%
HTTP::Body versions before 1.23_01 for Perl drop mixed-case percent escapes from urlencoded form fields instead of decoding them. The decode table holds only the all-lowercase and all-uppercase spelling of each hex pair, while the escape pattern matches either case. An escape such as %aB finds no entry and is replaced with nothing, joining the bytes on either side.
- CVE-2026-116134Low risk· EPSS 24%
HTTP::Body versions before 1.23_01 for Perl allow memory exhaustion via an unbounded multipart part header block. The multipart parser takes everything up to the first blank line after a boundary as the part's header block, with no limit on its size or number of lines. Every line is stored in the part's header hash, so a block of short lines costs about 60 bytes of memory per input byte.
- CVE-2026-116133Low risk· EPSS 24%
HTTP::Body versions before 1.23_01 for Perl allow CPU exhaustion via quadratic rescanning of a multipart body with a missing or malformed boundary. Before the first part, and between parts, the multipart parser searches the whole buffered body for the next boundary. On a miss it keeps everything and searches again from the start when the next chunk arrives, so a body with no boundary, or with a delimiter followed by neither CRLF nor "--", is rescanned on every chunk, taking time quadratic in its size.
- CVE-2026-116132Low risk· EPSS 28%
A vulnerability in the HTTP::Body Perl library (versions before 1.23_01) leaves temporary files from incomplete multipart uploads on disk. The multipart parser creates a temporary file as soon as a file part starts but only adds it to the upload list when the part completes, so an upload that ends inside a file part leaves its temporary file where nothing can find it.
Original NVD description (English source)
HTTP::Body versions before 1.23_01 for Perl allow memory and temporary file exhaustion via an unlimited number of form fields and multipart parts. The urlencoded parser splits the whole body on its separators at once, creating one scalar per separator before any field is stored. This costs about 90 bytes of memory per separator byte. The multipart parser creates a temporary file for every part that carries a filename. Neither parser limits how many fields or parts a body may hold. A remote attacker can exhaust worker memory with a body made of separators, or create thousands of temporary files with one request of small file parts.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

