GO-2024-2599

Source
https://pkg.go.dev/vuln/GO-2024-2599
Import Source
https://vuln.go.dev/ID/GO-2024-2599.json
Aliases
Published
2024-03-05T22:15:00Z
Modified
2024-03-12T09:11:36.086112Z
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

Affected packages

Go / stdlib

Package

Name
stdlib

Affected ranges

Type
SEMVER
Events
Introduced
0The exact introduced commit is unknown
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"
            ]
        }
    ]
}