{"id":"CVE-2023-45286","state":"PUBLISHED","title":"HTTP request body disclosure in github.com/go-resty/resty/v2","description":"A 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.","publishedAt":"2023-11-28T16:31:21.078Z","updatedAt":"2024-08-28T20:01:23.626Z","severity":null,"assigner":"Go","products":["github.com/go-resty/resty/v2 github.com/go-resty/resty/v2"],"affected":[{"vendor":"github.com/go-resty/resty/v2","product":"github.com/go-resty/resty/v2","packageName":"github.com/go-resty/resty/v2","defaultStatus":"unaffected","versions":[{"version":"2.10.0","status":"affected","lessThan":"2.11.0","versionType":"semver"}],"collectionURL":"https://pkg.go.dev","programRoutines":[{"name":"handleRequestBody"},{"name":"Backoff"},{"name":"Request.Delete"},{"name":"Request.Execute"},{"name":"Request.Get"},{"name":"Request.Head"},{"name":"Request.Options"},{"name":"Request.Patch"},{"name":"Request.Post"},{"name":"Request.Put"},{"name":"Request.Send"}]}],"references":["https://github.com/go-resty/resty/issues/743","https://github.com/go-resty/resty/issues/739","https://github.com/go-resty/resty/pull/745","https://github.com/go-resty/resty/commit/577fed8730d79f583eb48dfc81674164e1fc471e","https://pkg.go.dev/vuln/GO-2023-2328"],"weaknesses":[],"ingestedAt":"2026-10-29T20:06:24.729Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2023/45xxx/CVE-2023-45286.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2023-45286","state":"PUBLISHED","datePublished":"2023-11-28T16:31:21.078Z","dateUpdated":"2024-08-28T20:01:23.626Z","assignerShortName":"Go","assignerOrgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","dateReserved":"2023-10-06T17:06:26.221Z"},"containers":{"cna":{"title":"HTTP request body disclosure in github.com/go-resty/resty/v2","descriptions":[{"lang":"en","value":"A 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."}],"affected":[{"vendor":"github.com/go-resty/resty/v2","product":"github.com/go-resty/resty/v2","packageName":"github.com/go-resty/resty/v2","defaultStatus":"unaffected","versions":[{"version":"2.10.0","status":"affected","lessThan":"2.11.0","versionType":"semver"}],"collectionURL":"https://pkg.go.dev","programRoutines":[{"name":"handleRequestBody"},{"name":"Backoff"},{"name":"Request.Delete"},{"name":"Request.Execute"},{"name":"Request.Get"},{"name":"Request.Head"},{"name":"Request.Options"},{"name":"Request.Patch"},{"name":"Request.Post"},{"name":"Request.Put"},{"name":"Request.Send"}]}],"references":[{"url":"https://github.com/go-resty/resty/issues/743"},{"url":"https://github.com/go-resty/resty/issues/739"},{"url":"https://github.com/go-resty/resty/pull/745"},{"url":"https://github.com/go-resty/resty/commit/577fed8730d79f583eb48dfc81674164e1fc471e"},{"url":"https://pkg.go.dev/vuln/GO-2023-2328"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-200: Exposure of Sensitive Information to an Unauthorized Actor"}]}],"providerMetadata":{"shortName":"Go","orgId":"1bb62c36-49e3-4200-9d77-64a1400537cc","dateUpdated":"2024-01-04T18:41:48.460Z"},"credits":[{"lang":"en","value":"Logan Attwood (@lattwood)"}]},"adp":[{"title":"CVE Program Container","references":[{"url":"https://github.com/go-resty/resty/issues/743","tags":["x_transferred"]},{"url":"https://github.com/go-resty/resty/issues/739","tags":["x_transferred"]},{"url":"https://github.com/go-resty/resty/pull/745","tags":["x_transferred"]},{"url":"https://github.com/go-resty/resty/commit/577fed8730d79f583eb48dfc81674164e1fc471e","tags":["x_transferred"]},{"url":"https://pkg.go.dev/vuln/GO-2023-2328","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T20:21:15.309Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-08-28T20:00:00.708483Z","id":"CVE-2023-45286","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-08-28T20:01:23.626Z"}}]}}}