CVE-2026-48816: @sigstore/verify Sigstore-js Has Insufficient Verification Of Vulnerability
MODERATECVE-2026-48816 is a MODERATE (CVSS 6.5) sigstore-js has insufficient verification of vulnerability (CWE-345: Insufficient Verification of Data Authenticity) affecting @sigstore/verify libraries in the npm ecosystem. The issue involves sigstore-js has insufficient verification of data authenticity. Remediation is available by upgrading affected packages to version 3.1.1.
CVE-2026-48816 at a Glance
Security Impact
CVSS: 6.5
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N).
How to Fix CVE-2026-48816
To remediate this vulnerability, upgrade all affected @sigstore/verify dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
npm install @sigstore/verify@3.1.1
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
npm ls @sigstore/verify
How to Check if You Are Affected
To determine whether your Node.js application is affected by CVE-2026-48816, inspect your project dependencies using npm:
npm ls @sigstore/verify
Analyze the terminal output to locate any version of @sigstore/verify in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 3.1.1), your application is affected.
Note: The npm ls @sigstore/verify command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-345: Insufficient Verification of Data Authenticity, where the product does not sufficiently verify the origin or authenticity of data, in a way that causes it to accept invalid data. In @sigstore/verify, 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-48816 Affected @sigstore/verify Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
@sigstore/verify
|
npm |
≥ 3.1.0
< 3.1.1
All 1 versions
3.1.0
|
3.1.1
|
References
Frequently Asked Questions
What is CVE-2026-48816?
Which @sigstore/verify versions are affected?
What version fixes CVE-2026-48816?
Is @sigstore/verify affected?
What is the CVSS score of CVE-2026-48816?
What CWE is associated with CVE-2026-48816?
How can I check npm dependencies for CVE-2026-48816?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-xgjw-pm74-86q4",
"modified" : "2026-07-01T19:57:45Z",
"published" : "2026-07-01T19:57:45Z",
"aliases" : [ "CVE-2026-48816" ],
"summary" : "sigstore-js has Insufficient Verification of Data Authenticity",
"details" : "sigstore-js derives a transparency-log timestamp from `tlogEntries[].integratedTime` and uses it to validate certificate validity windows and satisfy `timestampThreshold`. For bundle v0.2, a tlog entry can be inclusionProof-only (no signed inclusionPromise/set), and the inclusion proof path does not cryptographically bind `integratedTime`. As a result, an attacker who can supply an untrusted bundle can influence time-based verification decisions by choosing `integratedTime`.\n\n## impact\nIf a consumer accepts attacker-provided bundle v0.2 inputs and relies on tlog-derived timestamps for certificate validity checks, verification can be influenced by an unauthenticated timestamp value. This is a trust gap: `integratedTime` is treated as a trusted observer timestamp under inclusionProof-only mode even though only the signed inclusionPromise/set path binds it.\n\n## affected code\n- `packages/verify/src/bundle/index.ts` (adds a transparency-log timestamp whenever `integratedTime != 0`)\n- `packages/verify/src/timestamp/index.ts` (converts `integratedTime` to a `Date`)\n- `packages/verify/src/verifier.ts` (verifies timestamps before verifying tlog inclusion)\n- `packages/verify/src/tlog/index.ts` + `packages/verify/src/tlog/set.ts` (only the inclusionPromise/set path binds `integratedTime`)\n\n## proof of concept\nThe attached `poc.zip` contains a self-contained harness that reproduces the behavior on the pinned commit and includes both a canonical test and a negative control.\n\nrepro:\n1) extract `poc.zip` into a fresh directory and run the make targets:\n\n```bash\nunzip poc.zip -d poc\ncd poc/poc-F-SIG-JS-TLOGTIME-001\nmake canonical\nmake control\n```\n\n2) confirm `canonical.log` includes:\n\n```\n[CALLSITE_HIT]:\n[PROOF_MARKER]:\n```\n\n3) confirm `control.log` includes:\n\n```\n[NC_MARKER]:\n```\n\n## suggested fix\nOnly treat `integratedTime` as a trusted timestamp when it is cryptographically bound (for example, via a verified signed inclusionPromise/set). For inclusionProof-only entries, do not count `integratedTime` toward `timestampThreshold`, and do not use it for certificate validity decisions unless there is another signed time source (for example, an rfc3161 timestamp).\n\n[poc.zip](https://github.com/user-attachments/files/25643656/poc.zip)\n[PR_DESCRIPTION.md](https://github.com/user-attachments/files/25643660/PR_DESCRIPTION.md)\n[SUBMISSION.md](https://github.com/user-attachments/files/25643662/SUBMISSION.md)",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "npm",
"name" : "@sigstore/verify"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "3.1.0"
}, {
"fixed" : "3.1.1"
} ]
} ],
"versions" : [ "3.1.0" ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/sigstore/sigstore-js/security/advisories/GHSA-xgjw-pm74-86q4"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/sigstore/sigstore-js"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-345" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-07-01T19:57:45Z",
"nvd_published_at" : null
}
}