Perl HTTP::Body before 1.23_01 allows resource exhaustion
Three named flaws cover unlimited form parts, leftover multipart temp files, and quadratic CPU use; the note is cut off.
CPU exhaustion in Perl HTTP::Body before 1.23_01
HTTP::Body for Perl rescans a buffered multipart body from the start whenever the boundary is missing or malformed, so parsing time grows with the square of the body size. A remote attacker can trigger this with a few crafted requests and exhaust worker CPU. Installations using HTTP::Body before 1.23_01 are affected.
What to do: Upgrade HTTP::Body to 1.23_01 or later.
| Product | Affected | Fixed in |
|---|---|---|
| HTTP::Body | before 1.23_01 | 1.23_01 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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. A body with no boundary, or with a delimiter followed by neither CRLF nor "--", is therefore rescanned on every chunk, taking time quadratic in its size. A remote attacker can exhaust worker CPU with a few such requests.
Three named flaws cover unlimited form parts, leftover multipart temp files, and quadratic CPU use; the note is cut off.
Today 1.4K readers · 2.5K views · 1.9K reads · all time 160K views