CVE-2020-14040
The x/text package before 0.3.3 for Go has a vulnerability in encoding/unicode that could lead to the UTF-16 decoder entering an infinite loop, causing the program to crash or run out of memory. An attacker could provide a single byte to a UTF16 decoder instantiated with UseBOM or ExpectBOM to trigger an infinite loop if the String function on the Decoder is called, or the Decoder is passed to golang.org/x/text/transform.String.
02 / AFFECTED SOFTWARE
Affected packages
5 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
The x/text package before 0.3.3 for Go has a vulnerability in encoding/unicode that could lead to the UTF-16 decoder entering an infinite loop, causing the program to crash or run out of memory. An attacker could provide a single byte to a UTF16 decoder instantiated with UseBOM or ExpectBOM to trigger an infinite loop if the String function on the Decoder is called, or the Decoder is passed to golang.org/x/text/transform.String.
Go version v0.3.3 of the x/text package fixes a vulnerability in encoding/unicode that could lead to the UTF-16 decoder entering an infinite loop, causing the program to crash or run out of memory. An attacker could provide a single byte to a UTF16 decoder instantiated with UseBOM or ExpectBOM to trigger an infinite loop if the String function on the Decoder is called, or the Decoder is passed to golang.org/x/text/transform.String. ### Specific Go Packages Affected golang.org/x/text/encoding/unicode golang.org/x/text/transform
An attacker could provide a single byte to a UTF16 decoder instantiated with UseBOM or ExpectBOM to trigger an infinite loop if the String function on the Decoder is called, or the Decoder is passed to transform.String. If used to parse user supplied input, this may be used as a denial of service vector.
05 / REFERENCES
Further evidence
- https://groups.google.com/forum/#%21topic/golang-announce/bXVeAmGOqz0
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/TACQFZDPA7AUR6TRZBCX2RGRFSDYLI7O/
- https://github.com/golang/go/issues/39491
- https://github.com/golang/text/commit/23ae387dee1f90d29a23c0e87ee0b46038fbed0e
- https://go-review.googlesource.com/c/text/+/238238
- https://go.dev/cl/238238
- https://go.dev/issue/39491
- https://go.googlesource.com/text/+/23ae387dee1f90d29a23c0e87ee0b46038fbed0e
- https://groups.google.com/forum/#!topic/golang-announce/bXVeAmGOqz0
- https://groups.google.com/g/golang-announce/c/bXVeAmGOqz0
- https://lists.fedoraproject.org/archives/list/[email protected]/message/TACQFZDPA7AUR6TRZBCX2RGRFSDYLI7O
- https://nvd.nist.gov/vuln/detail/CVE-2020-14040