GHSA-8phw-xrj9-cpqp

Suggest an improvement
Source
https://github.com/advisories/GHSA-8phw-xrj9-cpqp
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-8phw-xrj9-cpqp/GHSA-8phw-xrj9-cpqp.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-8phw-xrj9-cpqp
Aliases
Published
2026-09-17T18:01:30Z
Modified
2026-09-17T18:15:04Z
Severity
  • 5.9 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N CVSS Calculator
Summary
Steeltoe.Management.Endpoint: HttpExchanges URI masking leaks query-string secrets
Details

Summary

Steeltoe's /actuator/httpexchanges endpoint records and displays request URIs after passing them through MaskedUri. The masking only covers the UserInfo portion of the URI (inline user:password@host credentials) and does not inspect the query string. With IncludeQueryString enabled by default, any secrets carried in query strings (for example: OAuth tokens, password-reset tokens, signed-URL signatures, API keys) are returned verbatim in the uri field of the response and written to logs at DEBUG level.

Impact

Any caller who can reach /actuator/httpexchanges can receive full request URIs from prior traffic, including any secrets those URIs contained in their query strings. Applications with DEBUG-level logging enabled for the Steeltoe.Management.Endpoint.Actuators.HttpExchanges namespace also write these URIs to their application logs.

Affected configuration

  • httpexchanges is explicitly added to the actuator exposure list (Management:Endpoints:Web:Exposure:Include). It is not included by default.
  • The application handles requests that carry secrets in query strings, such as OAuth callbacks, signed URLs, or password-reset links.
  • DEBUG logging is enabled for Steeltoe.Management.Endpoint.Actuators.HttpExchanges (log exposure only).

Mitigations

If an immediate upgrade is not possible:

  • Remove httpexchanges from the actuator exposure list, or restrict it behind authentication.
  • Set Management:Endpoints:HttpExchanges:IncludeQueryString to false to strip query strings from recorded exchanges entirely.
Database specific
{
    "cwe_ids": [
        "CWE-200"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-09-17T18:01:30Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
}
References

Affected packages

NuGet / Steeltoe.Management.Endpoint

Package

Name
Steeltoe.Management.Endpoint
View open source insights on deps.dev
Purl
pkg:nuget/Steeltoe.Management.Endpoint

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
4.3.0

Affected versions

1.*
1.1.0-rc3
1.1.0
4.*
4.0.0-beta1
4.0.0-rc1
4.0.0
4.1.0
4.2.0

Database specific

last_known_affected_version_range
"<= 4.2.0"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-8phw-xrj9-cpqp/GHSA-8phw-xrj9-cpqp.json"