Private tokens could appear in logs if context containing gRPC metadata is logged in github.com/grpc/grpc-goGHSA-xr7q-jx4m-x55m
Fix: grpc/grpc-go@ab29241GHSA-xr7q-jx4m-x55m is a security vulnerability in google.golang.org/grpc. A fix is available for google.golang.org/grpc — see the affected versions and patch details below.
Real-World Exposure
google.golang.org/grpcReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Impact
This issue represents a potential PII concern. If applications were printing or logging a context containing gRPC metadata, the affected versions will contain all the metadata, which may include private information.
Patches
The issue first appeared in 1.64.0 and is patched in 1.64.1 and 1.65.0
Workarounds
If using an affected version and upgrading is not possible, ensuring you do not log or print contexts will avoid the problem.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | google.golang.org/grpc | ≥ 1.64.0&&< 1.64.1 | 1.64.1go get google.golang.org/grpc@v1.64.1 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for google.golang.org/grpc, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update google.golang.org/grpc to 1.64.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-xr7q-jx4m-x55m is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
Frequently Asked Questions
Is GHSA-xr7q-jx4m-x55m in your dependencies?
Find it across Go, including transitive dependencies.