GO-2024-2599

Source
https://pkg.go.dev/vuln/GO-2024-2599
Import Source
https://vuln.go.dev/ID/GO-2024-2599.json
JSON Data
https://api.osv.dev/v1/vulns/GO-2024-2599
Aliases
Related
Published
2024-03-05T22:15:00Z
Modified
2024-10-15T05:57:11.191403Z
Summary
Memory exhaustion in multipart form parsing in net/textproto and net/http
Details

When parsing a multipart form (either explicitly with Request.ParseMultipartForm or implicitly with Request.FormValue, Request.PostFormValue, or Request.FormFile), limits on the total size of the parsed form were not applied to the memory consumed while reading a single form line. This permits a maliciously crafted input containing very long lines to cause allocation of arbitrarily large amounts of memory, potentially leading to memory exhaustion.

With fix, the ParseMultipartForm function now correctly limits the maximum size of form lines.

References
Credits
    • Bartek Nowotarski

Affected packages

Go / stdlib

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.21.8
Introduced
1.22.0-0
Fixed
1.22.1

Ecosystem specific

{
    "imports": [
        {
            "path": "net/textproto",
            "symbols": [
                "Reader.ReadCodeLine",
                "Reader.ReadContinuedLine",
                "Reader.ReadContinuedLineBytes",
                "Reader.ReadDotLines",
                "Reader.ReadLine",
                "Reader.ReadLineBytes",
                "Reader.ReadMIMEHeader",
                "Reader.ReadResponse",
                "Reader.readContinuedLineSlice",
                "Reader.readLineSlice"
            ]
        }
    ]
}