Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2023-45286: Request body is written multiple times · Issue #743 · go-resty/resty

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.

CVE
#js

In v2.10.0, I’ve observed an issue where the request body passed to .SetBody(…) is intermittently written multiple times under certain conditions.

From what I gather, it is somehow related to the retry mechanism, or at the very least I was only able to reproduce by triggering that.

In the repro here, I ping an httptest mock endpoint triggering the retry mechanism, and observe the JSON request body being written multiple consecutive times e.g.

{ <some-json> }{ <some-json> }

This issue does not occur in v2.9.1.

Related news

GHSA-xwh9-gc39-5298: github.com/go-resty/resty/v2 HTTP request body disclosure

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.

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907