---
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.49444
ingestedAt: '2026-09-12T03:13:01.756Z'
---

## Overview

### 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](https://github.com/cloudevents/sdk-go/blob/67e389964131d55d65cd14b4eb32d57a47312695/v2/protocol/http/protocol.go#L104-L110) (also inline, emphasis added):

<pre>if p.Client == nil {
  p.Client = **http.DefaultClient**
}

if p.roundTripper != nil {
  p.Client.**Transport = p.roundTripper**
}
</pre>

When the transport is populated with an authenticated transport such as:
- [oauth2.Transport](https://pkg.go.dev/golang.org/x/oauth2#Transport)
- [idtoken.NewClient(...).Transport](https://pkg.go.dev/google.golang.org/api/idtoken#NewClient)

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

## Affected packages

- `github.com/cloudevents/sdk-go/v2 < 2.15.2`

## Remediation

Upgrade to a patched release:

- `github.com/cloudevents/sdk-go/v2 2.15.2`
