VYPR
High severityNVD Advisory· Published Dec 4, 2025· Updated Dec 5, 2025

Fulcio allocates excessive memory during token parsing

CVE-2025-66506

Description

Fulcio is a free-to-use certificate authority for issuing code signing certificates for an OpenID Connect (OIDC) identity. Prior to 1.8.3, function identity.extractIssuerURL splits (via a call to strings.Split) its argument (which is untrusted data) on periods. As a result, in the face of a malicious request with an (invalid) OIDC identity token in the payload containing many period characters, a call to extractIssuerURL incurs allocations to the tune of O(n) bytes (where n stands for the length of the function's argument), with a constant factor of about 16. This vulnerability is fixed in 1.8.3.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
github.com/sigstore/fulcioGo
< 1.8.31.8.3

Affected products

1

Patches

1
765a0e57608b

Merge commit from fork (#2233)

https://github.com/sigstore/fulcioBob CallawayDec 4, 2025via ghsa
1 file changed · +3 3
  • pkg/identity/issuerpool.go+3 3 modified
    @@ -41,11 +41,11 @@ func (p IssuerPool) Authenticate(ctx context.Context, token string, opts ...conf
     }
     
     func extractIssuerURL(token string) (string, error) {
    -	parts := strings.Split(token, ".")
    -	if len(parts) != 3 {
    -		return "", fmt.Errorf("oidc: malformed jwt, expected 3 parts got %d", len(parts))
    +	if strings.Count(token, ".") != 2 {
    +		return "", fmt.Errorf("oidc: malformed jwt, token must have 3 parts")
     	}
     
    +	parts := strings.SplitN(token, ".", 3)
     	raw, err := base64.RawURLEncoding.DecodeString(parts[1])
     	if err != nil {
     		return "", fmt.Errorf("oidc: malformed jwt payload: %w", err)
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.