Vulnerabilities in pkg:golang/github.com/sigstore/fulcio
PACKAGECVE-2026-49478 is a HIGH (CVSS 8.7) fulcio has oidc discovery redirect vulnerability (CWE-918: Server-Side Request Forgery (SSRF)) affecting Github.com/sigstore/fulcio libraries in the Go ecosystem. The issue involves fulcio has oidc discovery redirect following allows ssrf and jwks substitution for meta-issuer paths, with kubernetes service-account token leakage. Remediation is available by upgrading affected packages to version 1.8.6.
pkg:golang/github.com/sigstore/fulcio
Vulnerability advisories affecting package pkg:golang/github.com/sigstore/fulcio. Select an advisory below to view technical details or fixes.
| Advisory ID | CVE / NVD | Severity | Summary |
|---|---|---|---|
| GHSA-f5mr-q85p-6hh6 | CVE-2026-49478 | HIGH | Fulcio has OIDC Discovery Redirect Following Allows SSRF and JWKS Substitution for Meta-Issuer Paths, with Kubernetes Service-Account Token Leakage |
| GHSA-59jp-pj84-45mr | CVE-2026-22772 | MODERATE | Fulcio is vulnerable to Server-Side Request Forgery (SSRF) via MetaIssuer Regex Bypass |
| GHSA-f83f-xpx7-ffpw | CVE-2025-66506 | HIGH | Fulcio allocates excessive memory during token parsing |
CVE-2026-49478 at a Glance
Security Impact
CVSS: 8.7
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N).
How to Fix CVE-2026-49478
To remediate this vulnerability, upgrade all affected Github.com/sigstore/fulcio dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade github.com/sigstore/fulcio to 1.8.6
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for github.com/sigstore/fulcio
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-49478, inspect your project dependencies for Github.com/sigstore/fulcio:
inspect dependencies for github.com/sigstore/fulcio
Analyze the terminal output to locate any version of Github.com/sigstore/fulcio in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.8.6), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-918: Server-Side Request Forgery (SSRF), where the web server receives a url or similar request from an upstream component and retrieves the contents of this url, but it does not sufficiently ensure that the request is being sent to the expected destination. In Github.com/sigstore/fulcio, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-49478 Affected Github.com/sigstore/fulcio Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
github.com/sigstore/fulcio
|
Go |
< 1.8.6
|
1.8.6
|
References
Frequently Asked Questions
What is CVE-2026-49478?
Which Github.com/sigstore/fulcio versions are affected?
What version fixes CVE-2026-49478?
Is github.com/sigstore/fulcio affected?
What is the CVSS score of CVE-2026-49478?
What CWE is associated with CVE-2026-49478?
How can I check Go dependencies for CVE-2026-49478?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-f5mr-q85p-6hh6",
"modified" : "2026-06-30T18:38:45Z",
"published" : "2026-06-30T18:38:45Z",
"aliases" : [ "CVE-2026-49478" ],
"summary" : "Fulcio has OIDC Discovery Redirect Following Allows SSRF and JWKS Substitution for Meta-Issuer Paths, with Kubernetes Service-Account Token Leakage",
"details" : "## Impact\n\nThree security vulnerabilities were identified in the OIDC Discovery client:\n\n1. **Blind Server-Side Request Forgery (SSRF) via Cross-Host Redirects**:\n Fulcio uses an HTTP client to fetch OIDC discovery metadata (`/.well-known/openid-configuration`). Prior to this fix, if a configured issuer returned an HTTP redirect to a different host, the client followed it by default. This allowed a compromised or malicious issuer to redirect Fulcio's discovery requests to internal-only systems, resulting in blind SSRF.\n\n2. **JWKS Substitution and Cache Poisoning**:\n Because cross-host redirects were permitted during OIDC discovery, an attacker could manipulate the discovery flow to return a malicious `jwks_uri` pointing to an attacker-controlled host. When Fulcio successfully initialized the provider and cached the resulting verifier in the verifier cache, it poisoned the cache with the attacker's verification keys. The attacker could then present signatures validated against the poisoned keys.\n\n3. **Kubernetes ServiceAccount Token Leakage**:\n Fulcio mounts an in-cluster Kubernetes ServiceAccount token to authenticate OIDC discovery requests sent to the local control plane API server (`https://kubernetes.default.svc`).\n * **Cross-Host Redirects & JWKS**: The token was previously attached globally by the transport, leaking it to third-party hosts if the issuer performed a redirect or if the `jwks_uri` pointed to a different domain.\n * **Wildcard MetaIssuers**: If a wildcard `MetaIssuer` of type `kubernetes` (e.g., matching external EKS/GKE endpoints) was matched, and a local Kubernetes issuer was present in the config, the transport loaded and attached the local in-cluster ServiceAccount token to outbound requests sent to the external host.\n\n## Patches\n\nThe following mitigations have been applied:\n\n* **Blocked Cross-Host Redirects**: A custom callback is configured on all OIDC discovery HTTP clients to reject redirects that attempt to cross the original issuer's host boundary.\n* **Restricted Token Injection**: Updated the transport to only attach the ServiceAccount token when the outgoing request's host exactly matches the configured host of the issuer.\n* **Restricted Local Token Loading**: Constrained the loader to only load and wrap the transport with the local ServiceAccount token when the target issuer URL exactly matches the private local API server (`https://kubernetes.default.svc`).\n\n## Workarounds\n\nNone, upgrade to v1.8.6",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Go",
"name" : "github.com/sigstore/fulcio"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "1.8.6"
} ]
} ],
"database_specific" : {
"last_known_affected_version_range" : "<= 1.8.5"
}
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/sigstore/fulcio/security/advisories/GHSA-f5mr-q85p-6hh6"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/sigstore/fulcio"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-918" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2026-06-30T18:38:45Z",
"nvd_published_at" : null
}
}