CVE-2023-45286

NameCVE-2023-45286
DescriptionA race condition in go-resty can result in HTTP request body disclosure across requests. This condition can be triggered by calling sync.Pool.Put with the same *bytes.Buffer more than once, when request retries are enabled and a retry occurs. The call to sync.Pool.Get will then return a bytes.Buffer that hasn't had bytes.Buffer.Reset called on it. This dirty buffer will contain the HTTP request body from an unrelated request, and go-resty will append the current HTTP request body to it, sending two bodies in one request. The sync.Pool in question is defined at package level scope, so a completely unrelated server could receive the request body.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
Debian Bugs1057226

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
golang-github-go-resty-resty (PTS)bullseye2.4.0-1vulnerable
bookworm2.6.0-1vulnerable
sid, trixie2.10.0-1vulnerable

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
golang-github-go-resty-restysource(unstable)(unfixed)1057226

Notes

[bookworm] - golang-github-go-resty-resty <no-dsa> (Minor issue)
[bullseye] - golang-github-go-resty-resty <no-dsa> (Minor issue)
https://github.com/go-resty/resty/issues/743
https://github.com/go-resty/resty/issues/739
https://github.com/go-resty/resty/pull/745

Search for package or bug name: Reporting problems