Every CVE Search/ Get API key

CVE-2026-48815

sigstore-js: `certificateOIDs` verification constraints are silently dropped and never enforced

7.5 HighFix available

sigstore-js provides JavaScript libraries for interacting with Sigstore services. Prior to 4.1.1, the documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked and applications relying on certificateOIDs to restrict which certificates may sign artifacts can accept unauthorized certificates. This issue is fixed in version 4.1.1.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
High
Availability
None

Exploit likelihood

0.17%Unchanged since Jul 15, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

sigstore-js: `certificateOIDs` verification constraints are silently dropped and never enforced

sigstore-js provides JavaScript libraries for interacting with Sigstore services. Prior to 4.1.1, the documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked and applications relying on certificateOIDs to restrict which certificates may sign artifacts can accept unauthorized certificates. This issue is fixed in version 4.1.1.

Record
CVE-2026-48815
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-347
Updated
2026-11-02
EUVDEUVD-2026-44494 7.5

sigstore-js provides JavaScript libraries for interacting with Sigstore services. Prior to 4.1.1, the documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked and applications relying on certificateOIDs to restrict which certificates may sign artifacts can accept unauthorized certificates. This issue is fixed in version 4.1.1.

Record
EUVD-2026-44494
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-52v5-jr5w-gjxr 7.5

sigstore's `certificateOIDs` verification constraints are silently dropped and never enforced

Summary

The documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked.

Details

The public verify options include certificateOIDs and the documentation says those OID/value pairs “must be present in the certificate’s extension list.” The policy-construction path used by sigstore.verify() and createVerifier() only copies the SAN and issuer settings into the verification policy and completely ignores certificateOIDs.

As a result, callers can believe they are constraining verification to certificates carrying specific Fulcio or workload-identifying OIDs, while the actual verifier never receives those constraints. Any bundle that satisfies the remaining checks is accepted even if the required OID extensions are absent or mismatched.

This is reachable from supported usage through the documented certificateOIDs verify option.

PoC

const { createVerificationPolicy } = require("sigstore/dist/config");

const policy = createVerificationPolicy({
  certificateIssuer: "https://issuer.example",
  certificateIdentityEmail: "[email protected]",
  certificateOIDs: {
    "1.2.3.4": "required-value",
  },
});

console.log("certificateOIDs" in policy, JSON.stringify(policy));
// false {"subjectAlternativeName":"[email protected]","extensions":{"issuer":"https://issuer.example"}}

Impact

Applications that rely on certificateOIDs to restrict which certificates may sign artifacts receive no such protection. Unauthorized certificates that should be rejected on extension policy can be accepted as long as they satisfy the remaining verification checks.

Record
GHSA-52v5-jr5w-gjxr
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-347
Updated
2026-11-02
NVD 7.5

sigstore-js provides JavaScript libraries for interacting with Sigstore services. Prior to 4.1.1, the documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked and applications relying on certificateOIDs to restrict which certificates may sign artifacts can accept unauthorized certificates. This issue is fixed in version 4.1.1.

Record
CVE-2026-48815
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-347
Updated
2026-11-02
OSV 7.5

sigstore-js: `certificateOIDs` verification constraints are silently dropped and never enforced

sigstore-js provides JavaScript libraries for interacting with Sigstore services. Prior to 4.1.1, the documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked and applications relying on certificateOIDs to restrict which certificates may sign artifacts can accept unauthorized certificates. This issue is fixed in version 4.1.1.

Record
CVE-2026-48815
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-347
Updated
2026-11-02
OSVGHSA-52v5-jr5w-gjxr 7.5

sigstore's `certificateOIDs` verification constraints are silently dropped and never enforced

Summary

The documented certificateOIDs option in sigstore.verify() is accepted by the public API but discarded before verification, so required certificate extension OIDs are never checked.

Details

The public verify options include certificateOIDs and the documentation says those OID/value pairs “must be present in the certificate’s extension list.” The policy-construction path used by sigstore.verify() and createVerifier() only copies the SAN and issuer settings into the verification policy and completely ignores certificateOIDs.

As a result, callers can believe they are constraining verification to certificates carrying specific Fulcio or workload-identifying OIDs, while the actual verifier never receives those constraints. Any bundle that satisfies the remaining checks is accepted even if the required OID extensions are absent or mismatched.

This is reachable from supported usage through the documented certificateOIDs verify option.

PoC

const { createVerificationPolicy } = require("sigstore/dist/config");

const policy = createVerificationPolicy({
  certificateIssuer: "https://issuer.example",
  certificateIdentityEmail: "[email protected]",
  certificateOIDs: {
    "1.2.3.4": "required-value",
  },
});

console.log("certificateOIDs" in policy, JSON.stringify(policy));
// false {"subjectAlternativeName":"[email protected]","extensions":{"issuer":"https://issuer.example"}}

Impact

Applications that rely on certificateOIDs to restrict which certificates may sign artifacts receive no such protection. Unauthorized certificates that should be rejected on extension policy can be accepted as long as they satisfy the remaining verification checks.

Record
GHSA-52v5-jr5w-gjxr
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-347
Updated
2026-11-02
OSVCLSA-2026-1791840004 No score

TuxCare security update for sigstore (1 CVE)

TuxCare rebuilt sigstore to address 1 CVE. Fixed in 2.3.1-tuxcare.1.

Record
CLSA-2026-1791840004
Updated
2026-11-02
OSVCLSA-2026-1792582435 No score

TuxCare security update for sigstore (1 CVE)

TuxCare rebuilt sigstore to address 1 CVE. Fixed in 1.9.0-tuxcare.1.

Record
CLSA-2026-1792582435
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-48815 No score

CVE-2026-48815 in @rootio/sigstore - Patched by Root

Root has patched CVE-2026-48815 in the @rootio/sigstore package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-48815
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
sigstore
npm
through 4.1.0
4.1.1
sigstore
TuxCare:npm
2.3.1-tuxcare.0 up to 2.3.1-tuxcare.1, plus listed versions
2.3.1
2.3.1-tuxcare.1
sigstore
TuxCare:npm
1.9.0-tuxcare.0 up to 1.9.0-tuxcare.1, plus listed versions
1.9.0
1.9.0-tuxcare.1
sigstore
npm
before 4.1.1
4.1.1
@rootio/sigstore
Root:npm
before 3.0.0-root.io.1
3.0.0-root.io.12.1.0-root.io.11.9.0-root.io.11.5.2-root.io.14.0.0-root.io.13.1.0-root.io.12.3.0-root.io.14.1.0-root.io.12.2.2-root.io.12.3.1-root.io.1
sigstore
Root:npm
before 3.0.0-aikido.1
3.0.0-aikido.12.1.0-aikido.11.9.0-aikido.11.5.2-aikido.14.0.0-aikido.13.1.0-aikido.12.3.0-aikido.14.1.0-aikido.12.2.2-aikido.12.3.1-aikido.1

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-48815 is a high vulnerability (CVSS 7.5) in Sigstore Sigstore-js, published July 1, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.17%, the 6th percentile. Fixed in sigstore 4.1.1.

References

MoveEnter Open