Public vulnerability disclosure

CVE-2026-105770

Octo STS discloses trust policy contents to unauthorized callers via Exchange error messages

publishedCWE-209

Octo STS (github.com/octo-sts/app) before 0.11.2 returns trust policy configuration to callers whose OIDC token does not satisfy that policy. TrustPolicy.CheckToken included the policy's issuer, subject and audience values or patterns and claim_pattern names and regular expressions in its PermissionDenied errors, which Exchange returned verbatim. Exchange also selected the GitHub App installation before checking the token, so errors from resolving the policy's app or app_pattern pin were returned to callers the policy does not trust. An attacker who holds any validly signed OIDC token, such as a GitHub Actions token from a repository they own, and who knows or guesses a target owner/repo and identity name can read that policy's matching rules, even when the policy is stored in a private repository. These rules often name internal repositories, branches, environments or cloud account identifiers. The issue does not allow minting tokens or bypassing a trust policy. This issue is fixed in 0.11.2.

Technical severity5.3 mediumCVSS 3.1 · CNA: chainguard
Published2026-11-03Source updated 2026-11-03
Collected2026-11-031 attributed source

Fixes and workarounds

Fix

Upgrade to Octo STS 0.11.2 or later. The token is now checked against the trust policy immediately after the policy is loaded and before installation selection or app pin resolution. On a mismatch the detailed reason is logged and recorded on the operator audit event, and the caller receives only a generic "PermissionDenied: token does not match trust policy". Policies that exist but cannot be read, parsed or compiled now return the same NotFound response as a missing policy. Users of the hosted service are protected once the fix is deployed.

Source: CNA: chainguard

Workaround

None for self-hosted deployments other than upgrading.

Source: CNA: chainguard

Fix

The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.

Source: CNA: chainguard

Affected products and versions

Affected products, source version ranges and reporting authorities
ProductVersionsAuthority
app
octo-sts
github.com/octo-sts/app
https://pkg.go.dev
≥ 0; < 0.11.2 (affected, semver)
Other versions: unaffected
CNA: chainguard

Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.

CVSS assessments

CVSS scores, vectors and reporting authorities
Version / scoreVectorAuthority
3.1 / 5.3
medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NCNA: chainguard

Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

References

For agents and automation

Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.

Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.

Endpoints and access details

https://api.y2.dev/api/v2/cyber/cves
https://api.y2.dev/api/v2/cyber/cves/{cveId}

A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.

For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.

Agent access JSON · OpenAPI · CVE API guide