Vulnerability Report: GO-2023-2382

standard library

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

  • Path
    Go Versions
    Symbols
  • before go1.20.12, from go1.21.0-0 before go1.21.5
    3 unexported affected symbols
    • chunkedReader.Read
    • chunkedReader.beginChunk
    • readChunkLine

Aliases

References

Credits

  • Bartek Nowotarski

Feedback

See anything missing or incorrect? Suggest an edit to this report.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL