Because OIDC removes long-lived secrets, but it does not remove trust in the workflow that asks for the token. If the runner or job context is compromised, the attacker can exchange a short-lived identity for real publishing or cloud access. The risk moves from secret theft to identity issuance control.
How OIDC Changes the Security Boundary, Not the Trust Problem
OIDC-backed CI credentials improve one part of the problem: they replace static secrets with short-lived tokens tied to a workflow execution. That is a real reduction in secret exposure, but it does not eliminate the trust boundary around the pipeline itself. The security question shifts to whether the job, runner, issuer, and token exchange path are tightly controlled.
The practical difference is that the attacker no longer needs to steal a stored key if they can influence the code path that requests the token. In that case, the workflow becomes the identity issuance point, and the compromise surface includes branch protections, runner isolation, approval gates, and trust in the OIDC subject claims.
Well-designed OIDC flows can still be safer than long-lived CI secrets because they reduce replay window and enable more precise audience and claim restrictions. The control improvement, however, is conditional on the token being minted only for the intended workload and only in the intended context. The OpenID Connect Core 1.0 specification is relevant here because it shows how OIDC layers identity assertions on top of OAuth-style exchanges, which is exactly where CI trust decisions must be narrowed.
Where Supply Chain Risk Moves After Secretless CI
Once a pipeline uses OIDC, the main risk is no longer “can someone read the secret file?” It becomes “can someone cause the pipeline to mint a valid identity for the wrong code, branch, environment, or repository?” That is why compromise of the runner, job definition, build dependencies, or CI permissions can still lead directly to artifact publishing, cloud role assumption, or registry access.
This is a supply chain issue because the attacker is not only trying to exfiltrate data, but to insert or publish trusted output under legitimate automation. In that model, identity misuse can be as damaging as credential theft. Guidance on SLSA is useful because provenance, build integrity, and trusted build boundaries become the downstream controls that decide whether a minted CI identity can be trusted to produce or release software.
It also means that token shortness does not equal token safety. A short-lived credential can still be fully powerful during its lifetime, and a compromised job can request many short-lived tokens in sequence. The material control question is whether token issuance is bound to a narrow subject, a narrow audience, and a narrow set of repository states, not whether the token expires quickly.
What Practitioners Need to Lock Down First
The first thing to verify is the claim set that OIDC relies on: repository, branch, environment, workflow path, and audience. If those claims are too broad, a token issued for a harmless job can be reused to reach production systems. If the runner is shared or mutable, a compromise in one workflow can become a trust breakout across the rest of the pipeline.
That is why the strongest control is to treat OIDC as one factor in a larger authorization model, not as the final control. Keep issuer trust narrow, separate build and release permissions, and make sure publishing rights are not attached to generic CI execution. NHIMG’s MCP Security Guide is a good analogue for the same control principle: delegated access is only as safe as the policy that constrains what the bearer can do.
If your CI can mint cloud or registry access, then the operational judgement is simple: protect the issuance path with the same seriousness you would apply to a high-value service account. The OAuth 2.0 and OpenID Connect Guide for Identity Teams helps frame the difference between authentication, authorization, and token exchange, while the API Key Management Guide reinforces the lifecycle lesson that temporary or permanent, every credential still needs scoping, revocation, and blast-radius control.
Risk and Threat Considerations
OIDC-backed CI removes one common failure mode, static secret theft, but it preserves a more subtle one: trust abuse at token issuance time. If an attacker controls the runner, job context, or repository state that satisfies the trust policy, they can obtain a legitimate identity and use it before the short-lived window closes.
Failure mechanism: Overbroad claims, weak runner isolation, or poisoned workflow logic let an attacker exchange a legitimate pipeline context for publishing or cloud access.
Impact: The attacker can ship malicious artifacts, assume cloud roles, or pivot into downstream systems while appearing to act through approved automation.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 addresses the attack and risk surface, while SLSA and NIST SP 800-53 Rev 5 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-04 — Insecure Authentication | OIDC-backed CI credentials depend on secure token issuance and trust policy. |
| NHI-05 — Overprivileged NHI | CI-issued identities can still reach publishing or cloud roles if scopes are too broad. | |
| NHI-07 — Long-Lived Secrets | The question contrasts static secrets with short-lived OIDC credentials and the residual risk. | |
| Recommendation — Bind CI tokens to narrow claims and reject any workflow context that can mint unintended identities. Limit CI identities to the minimum publishing or cloud permissions needed for the job. Prefer short-lived credentials, but pair them with strict issuance and audience controls. | ||
| SLSA | Supply Chain Levels for Software Artifacts | The issue is software supply chain integrity when CI can mint trusted release access. |
| Recommendation — Require provenance and trusted build boundaries before allowing CI identities to publish artifacts. | ||
| NIST SP 800-53 Rev 5 | IA-5 — Authenticator Management | OIDC tokens are credential-like authenticators that still need lifecycle control and revocation discipline. |
| IA-2 — Identification and Authentication (Organizational Users) | The workflow and runner context are authenticated subjects that must be trusted before issuing access. | |
| Recommendation — Manage CI-issued tokens with narrow lifetime, rotation, and revocation controls. Authenticate the CI workload and its execution context before granting downstream access. | ||
Practitioner Guidance
What to verify: Confirm that your OIDC trust policy binds tokens to the exact repository, branch, environment, workflow file, and audience you intend. If any of those fields are broad or optional, assume the token can be minted from an unintended path.
Decision rule: If the CI identity can publish, deploy, or assume cloud roles, require explicit environment protection and runner hardening before you trust OIDC as a replacement for secrets. Secretless authentication is an improvement, but only when issuance is more constrained than the access it unlocks.
Common mistake: Teams often celebrate secret removal and stop there. The real control objective is to reduce both secret exposure and the chance that a compromised workflow can mint a valid identity for the wrong action.
Practitioner takeaway: Treat OIDC as a way to move trust from stored secrets to issuance policy, and measure it by how tightly you can constrain who gets a token, for what context, and with what maximum downstream authority.
Related resources from NHI Mgmt Group
- Why do short-lived OIDC tokens still create meaningful supply chain risk?
- Why do GitHub Actions workflows create supply chain risk for CI/CD credentials?
- Why do compromised CI and developer credentials create such a large supply chain risk for Python ecosystems?
- Why do exposed CI/CD credentials create outsized risk in GitHub supply chain attacks?