Skip to content

Use of WithRoundTripper to create a Client leaks credentials

Moderate
duglin published GHSA-5pf6-2qwx-pxm2 Mar 6, 2024

Package

No package listed

Affected versions

<= v2.15.1

Patched versions

v2.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:

... 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

Severity

Moderate

CVE ID

CVE-2024-28110

Weaknesses

No CWEs

Credits