CVE-2026-48816: @sigstore/verify Sigstore-js Has Insufficient Verification Of Vulnerability

MODERATE
Advisory Identifier: GHSA-xgjw-pm74-86q4
CVSS 6.5
CWE-345
Published
Advisory Summary

CVE-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

CVE Identifier CVE-2026-48816
GHSA Identifier GHSA-xgjw-pm74-86q4
Severity MODERATE
CVSS v3.1 Base Score 6.5
CWE Classification CWE-345: Insufficient Verification of Data Authenticity
Affected Product @sigstore/verify
Package Ecosystem npm
Published Date
Last Updated

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).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required Low (PR:L)
User Interaction None (UI:N)
Scope Unchanged (S:U)
Confidentiality None (C:N)
Integrity High (I:H)
Availability None (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.

@sigstore/verify fixed: 3.1.1
npm install @sigstore/verify@3.1.1
Verify Direct and Transitive Dependencies

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

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`. ## impact If 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. ## affected code - `packages/verify/src/bundle/index.ts` (adds a transparency-log timestamp whenever `integratedTime != 0`) - `packages/verify/src/timestamp/index.ts` (converts `integratedTime` to a `Date`) - `packages/verify/src/verifier.ts` (verifies timestamps before verifying tlog inclusion) - `packages/verify/src/tlog/index.ts` + `packages/verify/src/tlog/set.ts` (only the inclusionPromise/set path binds `integratedTime`) ## proof of concept The 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. repro: 1) extract `poc.zip` into a fresh directory and run the make targets: ```bash unzip poc.zip -d poc cd poc/poc-F-SIG-JS-TLOGTIME-001 make canonical make control ``` 2) confirm `canonical.log` includes: ``` [CALLSITE_HIT]: [PROOF_MARKER]: ``` 3) confirm `control.log` includes: ``` [NC_MARKER]: ``` ## suggested fix Only 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). [poc.zip](https://github.com/user-attachments/files/25643656/poc.zip) [PR_DESCRIPTION.md](https://github.com/user-attachments/files/25643660/PR_DESCRIPTION.md) [SUBMISSION.md](https://github.com/user-attachments/files/25643662/SUBMISSION.md)

CVE-2026-48816 Affected @sigstore/verify Versions

1 component(s)
Fixed Versions:
3.1.1
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?
CVE-2026-48816 is a security vulnerability in @sigstore/verify involving sigstore-js has Insufficient Verification of Data Authenticity under CWE-345: Insufficient Verification of Data Authenticity.
Which @sigstore/verify versions are affected?
Affected versions include releases prior to 3.1.1 across affected packages: @sigstore/verify.
What version fixes CVE-2026-48816?
Upgrading to 3.1.1 (or the latest patched release for your respective branch) resolves the vulnerability.
Is @sigstore/verify affected?
Yes, @sigstore/verify is affected in releases prior to 3.1.1. Upgrade your dependency to 3.1.1 or later.
What is the CVSS score of CVE-2026-48816?
CVE-2026-48816 has a CVSS v3.1 base score of 6.5 (MODERATE) with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N.
What CWE is associated with CVE-2026-48816?
CVE-2026-48816 is classified under CWE-345: Insufficient Verification of Data Authenticity (The product does not sufficiently verify the origin or authenticity of data, in a way that causes it to accept invalid data.).
How can I check npm dependencies for CVE-2026-48816?
Run the dependency tree command: 'npm ls @sigstore/verify'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "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
  }
}