Summary
Woodpecker gRPC agent_id metadata can be spoofed- cross-tenant agent impersonation
Advisory details
Impact
A vulnerability in Woodpecker CI's gRPC layer allowed any authenticated agent to impersonate any other agent on the same server by injecting a forged agent_id value into outgoing gRPC metadata. The server correctly verified the JWT token but then discarded the verified agent identity in favor of the client-supplied value.
Patches
Direct patch: https://github.com/woodpecker-ci/woodpecker/pull/6567 Later proper fix: https://github.com/woodpecker-ci/woodpecker/pull/6569
Workarounds
Disable org agents (WOODPECKER_DISABLE_USER_AGENT_REGISTRATION=true) and delete existing ones
Resources
Public ref: https://github.com/woodpecker-ci/woodpecker/issues/6541 Private com: https://github.com/woodpecker-ci/woodpecker-security/issues/21
References
- https://github.com/advisories/GHSA-g7mm-9vx7-jm7h
- https://github.com/woodpecker-ci/woodpecker/security/advisories/GHSA-g7mm-9vx7-jm7h
- https://nvd.nist.gov/vuln/detail/CVE-2026-50141
- https://github.com/woodpecker-ci/woodpecker-security/issues/21
- https://github.com/woodpecker-ci/woodpecker/issues/6541
- https://github.com/woodpecker-ci/woodpecker/pull/6567
- https://github.com/woodpecker-ci/woodpecker/pull/6569
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-63735
SurrealDB: Custom API route lets authenticated callers override namespace/database scope via URL path
- MEDIUMCVE-2026-72802
SiYuan: Absolute filesystem path and OS username disclosure via resolveAssetPath
- HIGHCVE-2026-72809
SiYuan: Localhost-trust admin bypass on auth-code-gated endpoints, with potential remote reachability via the fixed-port proxy
- MEDIUMCVE-2026-63669
ApostropheCMS: Missing destination-parent authorization in page `move()` allows a low-privileged editor to move and re-rank pages inside a restricted subtree
- MEDIUMCVE-2026-73840
OpenChoreo: Unauthenticated build/workflow trigger via git-provider confusion (webhook signature bypass)
- HIGHCVE-2026-73841
OpenChoreo: Cross-project command execution and wirelog view access via OpenChoreo openchoreo-api exec and wirelogs endpoints