Vulnerability Report: GO-2023-2382
standard library- CVE-2023-39326
- Affects: net/http/internal
- Published: Dec 06, 2023
- Modified: May 20, 2024
A malicious HTTP sender can use chunk extensions to cause a receiver reading from a request or response body to read many more bytes from the network than are in the body. A malicious HTTP client can further exploit this to cause a server to automatically read a large amount of data (up to about 1GiB) when a handler fails to read the entire body of a request. Chunk extensions are a little-used HTTP feature which permit including additional metadata in a request or response body sent using the chunked encoding. The net/http chunked encoding reader discards this metadata. A sender can exploit this by inserting a large metadata segment with each byte transferred. The chunk reader now produces an error if the ratio of real body to encoded bytes grows too small.
Affected Packages
-
PathGo VersionsSymbols
-
before go1.20.12, from go1.21.0-0 before go1.21.5
3 unexported affected symbols
- chunkedReader.Read
- chunkedReader.beginChunk
- readChunkLine
Aliases
References
- https://go.dev/issue/64433
- https://go.dev/cl/547335
- https://groups.google.com/g/golang-dev/c/6ypN5EjibjM/m/KmLVYH_uAgAJ
- https://vuln.go.dev/ID/GO-2023-2382.json
Credits
- Bartek Nowotarski