CVE-2023-45286
mediumpriority · track · 24EPSS 0.007 · 54 %ileDEEUUSEPSS · scored 2026-10-27
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.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (40)
Products and version ranges known to be affected.
- Red Hat Enterprise Linux Advanced Cluster Security for Kubernetes 4all versionscert_bundDEcpe:/o:redhat:enterprise_linux:advanced_cluster_security_for_kubernetes_4
- Red Hat OpenShift CodeReady Workspacesall versionscert_bundDEcpe:/a:redhat:openshift:codeready_workspaces
- Red Hat OpenShift Custom Metric Autoscaler 2all versionscert_bundDEcpe:/a:redhat:openshift:custom_metric_autoscaler_2
- Red Hat OpenShift Kube Descheduler Operator 5all versionscert_bundDEcpe:/a:redhat:openshift:kube_descheduler_operator_5
advisories (3)
Vendor and ecosystem advisories describing this.
- WID-SEC-W-2024-1226Red Hat OpenShift: Mehrere SchwachstellenDeutsch2024-05-22csaf · cert_bundDE
Ein Angreifer kann mehrere Schwachstellen in Red Hat OpenShift ausnutzen, um Dateien zu manipulieren, einen Denial-of-Service-Zustand zu verursachen, beliebigen Code auszuführen, vertrauliche Informationen offenzulegen, seine Privilegien zu erweitern oder um weitere nicht spezifizierte Angriffe auszuführen.
- GHSA-xwh9-gc39-5298github.com/go-resty/resty/v2 HTTP request body disclosure2023-11-28ghsa · osvUS
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.
- GO-2023-2328HTTP request body disclosure in github.com/go-resty/resty/v22023-11-27vendor · osvUS
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.
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (14)
External citations — patches, advisories, analysis.
- https://github.com/go-resty/resty/issues/739cnnvd
- https://github.com/go-resty/resty/issues/743cnnvd
- https://github.com/go-resty/resty/pull/745cnnvd
- https://pkg.go.dev/vuln/GO-2023-2328cnnvd
- https://github.com/go-resty/resty/commit/577fed8730d79f583eb48dfc81674164e1fc471eenisa_euvd
- https://github.com/go-resty/resty/issues/739enisa_euvd
- https://github.com/go-resty/resty/issues/743enisa_euvd
- https://github.com/go-resty/resty/pull/745enisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan