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.
Resource exhaustion in Perl HTTP::Body before 1.23_01
HTTP::Body for Perl does not limit form fields or multipart parts. A remote attacker can send a urlencoded body of separators, which is split into one scalar per separator (about 90 bytes of memory per separator byte), or a multipart body of many small filename parts, each creating a temporary file. Either request can exhaust worker memory or fill temporary storage. Versions before 1.23_01 are affected.
What to do: Upgrade HTTP::Body to 1.23_01 or later.
| Product | Affected | Fixed in |
|---|---|---|
| Perl 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 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.
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