{"id":"CVE-2024-28110","aliases":["GHSA-5pf6-2qwx-pxm2","GO-2024-2618"],"title":"Go SDK for CloudEvents's use of WithRoundTripper to create a Client leaks credentials","summary":"Go SDK for CloudEvents's use of WithRoundTripper to create a Client leaks credentials","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","vendor":"cloudevents","product":"github.com/cloudevents/sdk-go/v2","ecosystem":"go","affected":["github.com/cloudevents/sdk-go/v2 < 2.15.2"],"patched":["github.com/cloudevents/sdk-go/v2 2.15.2"],"published":"2024-03-06","updated":"2026-09-10","sourceUpdated":"2026-09-10T03:50:00.238160348Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-5pf6-2qwx-pxm2","references":[{"url":"https://github.com/cloudevents/sdk-go/security/advisories/GHSA-5pf6-2qwx-pxm2"},{"url":"https://github.com/cloudevents/sdk-go/commit/de2f28370b0d2a0f64f92c0c6139fa4b8a7c3851"},{"url":"https://github.com/cloudevents/sdk-go"},{"url":"https://github.com/cloudevents/sdk-go/blob/67e389964131d55d65cd14b4eb32d57a47312695/v2/protocol/http/protocol.go#L104-L110"}],"tags":["osv","go"],"epss":0.00661,"epssPercentile":0.5022,"ingestedAt":"2026-09-12T03:13:01.756Z","slug":"CVE-2024-28110","body":"## Overview\n\n### Impact\n_What kind of vulnerability is it? Who is impacted?_\nUsing cloudevents.WithRoundTripper to create a cloudevents.Client with an authenticated http.RoundTripper causes the go-sdk to leak credentials to arbitrary endpoints.\n\nThe relevant code is [here](https://github.com/cloudevents/sdk-go/blob/67e389964131d55d65cd14b4eb32d57a47312695/v2/protocol/http/protocol.go#L104-L110) (also inline, emphasis added):\n\n<pre>if p.Client == nil {\n  p.Client = **http.DefaultClient**\n}\n\nif p.roundTripper != nil {\n  p.Client.**Transport = p.roundTripper**\n}\n</pre>\n\nWhen the transport is populated with an authenticated transport such as:\n- [oauth2.Transport](https://pkg.go.dev/golang.org/x/oauth2#Transport)\n- [idtoken.NewClient(...).Transport](https://pkg.go.dev/google.golang.org/api/idtoken#NewClient)\n\n... then http.DefaultClient is modified with the authenticated transport and will start to send Authorization tokens to\n**any endpoint** it is used to contact!\n\nFound and patched by: @tcnghia and @mattmoor\n\n### Patches\nv.2.15.2\n\n## Affected packages\n\n- `github.com/cloudevents/sdk-go/v2 < 2.15.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `github.com/cloudevents/sdk-go/v2 2.15.2`","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}