Skip to content

fix: require code signing key usage on fulcio signing certificates - #1335

Open
riha-dev wants to merge 1 commit into
sigstore:mainfrom
riha-dev:fulcio-leaf-key-usage
Open

riha-dev wants to merge 1 commit into
sigstore:mainfrom
riha-dev:fulcio-leaf-key-usage

Conversation

@riha-dev

@riha-dev riha-dev commented Nov 7, 2026

Copy link
Copy Markdown

FulcioVerifier.verifySigningCertificate accepts any end-entity certificate under a trusted-root CA as a signing certificate, because nothing checks the leaf's key usage or EKU (Java's PKIX validator only checks key usage on CA certificates):

  • A leaf with only a serverAuth EKU, or with keyEncipherment as its only key usage, passes today, and KeylessVerifier.verify relies on this call for its certificate checks.
  • The Fulcio certificate profile requires digitalSignature and codeSigning on every leaf. sigstore-python rejects certificates missing either, and sigstore-go passes ExtKeyUsageCodeSigning to x509.Verify.
  • Public-good Fulcio certificates already carry both, so this mainly matters for private deployments whose trusted root lists a CA that also issues other kinds of certificates.
  • The new FulcioVerifierTest cases issue both leaves from a test CA and fail on main. A code signing leaf from the same CA, the existing Fulcio fixtures and all 61 leaf certificates in the sigstore-conformance v0.0.29 assets still verify.

Signed-off-by: riha ilyas <riha@research.itecz.au>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant