GitHub Advisoryadvisory · Go
GHSA-5pf6-2qwx-pxm2 Go SDK for CloudEvents's use of WithRoundTripper to create a Client leaks credentials
HIGH
Official page ↗
- Aliases
- CVE-2024-28110
- Ecosystem
- Go
- Packages
- github.com/cloudevents/sdk-go/v2
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-522
- Reviewed
- 2024-03-06
Affected packages
• Go github.com/cloudevents/sdk-go/v2: < 2.15.2 → fixed in 2.15.2
Description
Impact
_What kind of vulnerability is it? Who is impacted?_
Using cloudevents.WithRoundTripper to create a cloudevents.Client with an authenticated http.RoundTripper causes the go-sdk to leak credentials to arbitrary endpoints.
The relevant code is here (also inline, emphasis added):
if p.Client == nil {
p.Client = http.DefaultClient
}
if p.roundTripper != nil {
p.Client.Transport = p.roundTripper
}
When the transport is populated with an authenticated transport such as:
• oauth2.Transport
• idtoken.NewClient(...).Transport
... then http.DefaultClient is modified with the authenticated transport and will start to send Authorization tokens to
any endpoint it is used to contact!
Found and patched by: @tcnghia and @mattmoor
Patches
v.2.15.2
Related
Alias · CVE (1)
- CVE-2024-28110 Go SDK for CloudEvents is the official CloudEvents SDK to integrate applications with CloudEvents. vulnerability
Weakness · CWE (1)
- CWE-522 Insufficiently Protected Credentials weakness
References
- https://github.com/cloudevents/sdk-go/security/advisories/GHSA-5pf6-2qwx-pxm2 web
- https://github.com/cloudevents/sdk-go/commit/de2f28370b0d2a0f64f92c0c6139fa4b8a7c3851 web
- https://github.com/cloudevents/sdk-go package
- https://github.com/cloudevents/sdk-go/blob/67e389964131d55d65cd14b4eb32d57a47312695/v2/protocol/http/protocol.go#L104-L110 web