{"id":"CVE-2023-45286","aliases":["AZL-32050","DEBIAN-CVE-2023-45286","EUVD-2023-3068","GHSA-xwh9-gc39-5298","GO-2023-2328","UBUNTU-CVE-2023-45286","openSUSE-SU-2024:13569-1"],"status":"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.","severity":{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.00722,"percentile":0.54252,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200","CWE-362"],"published":"2023-11-27T18:53:31Z","modified":"2026-10-28T02:31:10Z","fixes":[{"ecosystem":"Go","package":"github.com/go-resty/resty/v2","fixed_in":["2.11.0"],"sources":["ghsa","osv"]},{"ecosystem":"Azure Linux:2","package":"packer","fixed_in":["1.8.7-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"golang-github-go-resty-resty","fixed_in":["2.10.0-2"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"golang-github-go-resty-resty","fixed_in":["2.10.0-2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/go-resty/resty/v2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.10.0"},{"fixed":"2.11.0"}]}]},{"source":"osv","ecosystem":"Azure Linux:2","package":"packer","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.8.7-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.0-1","2.10.0-2","2.6.0-1"]},{"source":"osv","ecosystem":"Debian:13","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.10.0-2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.10.0-2"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/go-resty/resty/v2","ranges":[{"type":"SEMVER","events":[{"introduced":"2.10.0"},{"fixed":"2.11.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/go-resty/resty/v2","ranges":[{"type":"SEMVER","events":[{"introduced":"2.10.0"},{"fixed":"2.11.0"}]}]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.4.0-1ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.4.0-1ubuntu1","2.10.0-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.0-1","2.10.0-2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.0-2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"golang-github-go-resty-resty","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.10.0-2"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rclone","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.65.1-1.1"}]}],"bundled":2}],"products":[{"vendor":"github.com/go-resty/resty/v2","product":"github.com/go-resty/resty/v2"},{"vendor":"resty_project","product":"resty"}],"references":[{"url":"https://github.com/go-resty/resty/issues/743","tags":["x_transferred","Issue Tracking","report","web"]},{"url":"https://github.com/go-resty/resty/issues/739","tags":["x_transferred","Exploit","Issue Tracking","report","web"]},{"url":"https://github.com/go-resty/resty/pull/745","tags":["x_transferred","Issue Tracking","Patch","fix","web","report"]},{"url":"https://github.com/go-resty/resty/commit/577fed8730d79f583eb48dfc81674164e1fc471e","tags":["x_transferred","fix","web"]},{"url":"https://pkg.go.dev/vuln/GO-2023-2328","tags":["x_transferred","Vendor Advisory","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45286","tags":["web","advisory"]},{"url":"https://github.com/go-resty/resty/releases/tag/v2.11.0","tags":["web"]},{"url":"https://github.com/advisories/GHSA-xwh9-gc39-5298"},{"url":"https://pkg.go.dev","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/45xxx/CVE-2023-45286.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-45286","tags":["advisory"]},{"url":"https://github.com/go-resty/resty","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2023-45286","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-45286","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45286","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-48795","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2023-45286","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.","status":"published","published":"2023-11-28T16:31:21.078Z","modified":"2024-08-28T20:01:23.626Z","updated_at":"2026-11-02T14:35:22.984825Z"}],"euvd":[{"id":"EUVD-2023-3068","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.","status":"published","published":"2023-11-28T16:31:21Z","modified":"2024-08-28T20:01:23Z","updated_at":"2026-11-03T00:56:08.302583Z"}],"ghsa":[{"id":"GHSA-xwh9-gc39-5298","title":"github.com/go-resty/resty/v2 HTTP request body disclosure","description":"A race condition in go-resty can result in HTTP request body disclosure across requests.\n\nThis 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.\n\nThe sync.Pool in question is defined at package level scope, so a completely unrelated server could receive the request body.","status":"published","published":"2023-11-28T17:36:21Z","modified":"2024-01-08T20:30:35Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-200","CWE-362"],"updated_at":"2026-11-02T14:37:30.183224Z"}],"nvd":[{"id":"CVE-2023-45286","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.","status":"published","published":"2023-11-28T17:15:08.28Z","modified":"2026-06-17T06:28:35.33Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-362"],"updated_at":"2026-11-02T14:08:49.393375Z"}],"osv":[{"id":"AZL-32050","title":"CVE-2023-45286 affecting package packer for versions less than 1.8.7-1","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.","status":"published","published":"2023-11-28T17:15:08Z","modified":"2026-04-21T04:26:38.315662Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:28:03.46006Z"},{"id":"DEBIAN-CVE-2023-45286","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.","status":"published","published":"2023-11-28T17:15:08.28Z","modified":"2026-10-26T18:02:49.509064459Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:40.275853Z"},{"id":"GHSA-xwh9-gc39-5298","title":"github.com/go-resty/resty/v2 HTTP request body disclosure","description":"A race condition in go-resty can result in HTTP request body disclosure across requests.\n\nThis 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.\n\nThe sync.Pool in question is defined at package level scope, so a completely unrelated server could receive the request body.","status":"published","published":"2023-11-28T17:36:21Z","modified":"2026-09-10T03:49:59.271586668Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-200","CWE-362"],"updated_at":"2026-11-02T15:47:00.604718Z"},{"id":"UBUNTU-CVE-2023-45286","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.","status":"published","published":"2023-11-28T17:15:00Z","modified":"2026-10-17T12:56:25.887593449Z","cvss":[{"version":"3.1","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T16:54:22.741943Z"},{"id":"CVE-2023-45286","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.","status":"published","published":"2023-11-28T16:31:21.078Z","modified":"2026-10-28T02:31:10.982903138Z","updated_at":"2026-11-02T15:44:33.792101Z"},{"id":"GO-2023-2328","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.\n\nThis 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.\n\nThe sync.Pool in question is defined at package level scope, so a completely unrelated server could receive the request body.","status":"published","published":"2023-11-27T18:53:31Z","modified":"2026-02-04T04:31:53.755411Z","updated_at":"2026-11-02T15:47:01.185262Z"},{"id":"openSUSE-SU-2024:13569-1","title":"rclone-1.65.1-1.1 on GA media","description":"These are all security issues fixed in the rclone-1.65.1-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:32:28.736756Z","updated_at":"2026-11-02T16:58:36.327643Z"}]}}
