Skip to main content

http-cache-semantics EUVDEUVD-2026-83255

| CVE-2026-93750 HIGH
Interpretation Conflict (CWE-436)
2026-09-18 VulnCheck GHSA-f27v-pv5m-c5g6
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify shared cache using http-cache-semantics
  2. Delivery
    Request URL previously fetched by victim
  3. Exploit
    Wildcard Vary bypass in _varyMatches
  4. Execution
    Cache returns victim's response
  5. Impact
    Disclose cross-client sensitive data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service Interpretation consistency
Exploitation Conditions

Requires http-cache-semantics to be used as a SHARED cache serving multiple distinct clients/users (not a private per-user cache), AND an origin server that returns a wildcard Vary header (Vary: *) on a cacheable response containing sensitive per-user data. The attacker must request a URL that another client previously fetched and that is still present in the cache. Limiting factors: exploitation is non-deterministic (CVSS AT:P/AC:H) since it depends on live cache state, cache freshness/eviction, and the origin actually emitting wildcard Vary; it does not affect private/single-user cache deployments and yields only confidentiality impact (no integrity or availability effect). No authentication or user interaction is required against a vulnerable shared-cache deployment.

Impact

The vendor CVSS 4.0 base score is 8.2 (AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N), driven almost entirely by high confidentiality impact on a network-reachable, unauthenticated path - but tempered by AC:H and AT:P, which correctly reflect that exploitation is conditional and non-deterministic rather than a straightforward request. No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided data, so exploitation status is 'no public exploit identified at time of analysis'; the only exploitation evidence is a VulnCheck advisory and an upstream GitHub issue (#57) documenting the flaw. The realistic risk is materially lower than the 8.2 headline suggests: this is a logic bug in a caching helper library, and impact only materializes when the library is used as a genuinely shared cache across multiple users AND an origin emits a wildcard Vary response - the AC:H/AT:P metrics encode exactly this gating. The pure-confidentiality profile (VI:N/VA:N) means no integrity or availability consequence. Bottom line: a real, credible cross-client information-disclosure issue worth patching promptly given the library's enormous transitive footprint, but not an internet-wide, mass-automatable emergency in the absence of active exploitation or POC.

Exploit ScenarioDerived

A shared HTTP cache built on http-cache-semantics stores a response that an origin marked with a wildcard Vary header (Vary: *), which per RFC should never be reused across requests; because _varyMatches() does a byte-for-byte comparison instead of treating the wildcard as non-matching, the cache treats a later request for the same URL as a hit. An attacker requests a URL previously fetched by a different user and receives that other user's cached, potentially sensitive response. No public exploit code is identified; success depends on origin behavior and cache state (reflected in CVSS AC:H/AT:P).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

Cross-client information disclosure in http-cache-semantics through 4.2.0 allows remote, unauthenticated attackers to receive cached responses that were generated for other users. The library's _varyMatches() function performs byte-for-byte comparison of Vary header values and therefore fails to treat a wildcard 'Vary: *' directive as a prohibition on shared-cache reuse, so a request for a URL previously fetched by someone else can be satisfied from cache with that other client's sensitive per-user data. Exploitation is conditional and non-deterministic - it requires a shared, multi-user cache deployment and an origin that emits wildcard Vary on cacheable responses - which is consistent with the vendor CVSS 4.0 score of 8.2 with AC:H and AT:P; no public exploit code has been identified at time of analysis.

RemediationAI

No vendor-released patch was identified at time of analysis; the upstream tracking issue (https://github.com/kornelski/http-cache-semantics/issues/57) is the authoritative place to confirm when a fixed release appears, and until then the library should be treated as unfixed on the 4.2.0-and-earlier line. The most direct compensating control is to override or vendor-patch _varyMatches() so that any stored response whose Vary header contains '*' is treated as a non-match for shared caches (i.e., never reused without revalidation), which restores RFC 9111 behavior; this is a small, low-risk change but must be reapplied on every dependency update and is impractical for teams that cannot fork their dependency tree. Where patching is not possible, do not use the affected library as a shared cross-user cache: either restrict it to private, per-user cache instances, or place an RFC 9111-compliant cache layer in front of it and disable caching for responses that carry Vary: *, at the cost of reduced hit ratios and higher origin load. As an origin-side control, stop emitting wildcard Vary on cacheable responses containing per-user data and set Cache-Control: private, no-store, or s-maxage=0 on such responses, which eliminates the triggering condition entirely but may shift load to the origin and change CDN behavior. Operators should also avoid serving sensitive personalized content through any shared cache path until a patched version can be deployed; monitor the repository and the VulnCheck advisory (https://www.vulncheck.com/advisories/http-cache-semantics-through-4.2.0-cross-client-cache-disclosure-via-vary-wildcard) for the release that ships the corrected wildcard handling.

Affected VersionsENISA

http-cache-semantics 0 ≤4.2.0

Affected Packages

euvd http_cache_semantics no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

http-cache-semantics is a widely used Node.js implementation of RFC 9111 (HTTP Caching) semantics; it is a dependency of popular HTTP clients and caching layers such as cacheable-request, got, and make-fetch-happen, and is therefore embedded deep inside toolchains rather than usually being invoked directly. The vulnerable logic lives in the _varyMatches() function in index.js (referenced lines 483-501), which decides whether a stored response may satisfy a new request by comparing the request headers named in the response's Vary header against the values that were present when the response was stored. RFC 9111 specifies that a shared cache MUST NOT use a response containing 'Vary: *' to satisfy any subsequent request unless it is successfully revalidated, because the wildcard means the representation is selected by aspects not expressible as request headers. The implementation instead treats '*' as an ordinary token and matches it byte-for-byte, so the wildcard check never fires. This is classified as CWE-436 (Interpretation Conflict): the cache and the origin server disagree about the meaning of the same Vary field value. The result is a pure confidentiality failure (C:H, I:N, A:N) reachable over the network without credentials or user interaction (PR:N/UI:N), but gated by AC:H/AT:P because it depends on live cache state, cache freshness and eviction, the attacker requesting a URL another client already fetched, and the origin actually emitting a wildcard Vary on a cacheable response containing per-user data. The CPE cpe:2.3:a:kornelski:http-cache-semantics:*:*:*:*:*:*:*:* with the advisory's version bound of 'through 4.2.0' indicates all releases up to and including 4.2.0 are affected.

Know when Http Cache Semantics gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.2 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

Network-reachable and unauthenticated (AV:N/PR:N), but AC:H because success depends on cache state and an origin emitting wildcard Vary; pure confidentiality disclosure so C:H, I:N, A:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

http-cache-semantics through 4.2.0 contains a cache validation vulnerability in the _varyMatches() function that fails to properly validate Vary header wildcards due to byte-for-byte string comparison. Attackers can request URLs previously fetched by other clients to receive cached responses intended for different users, disclosing sensitive information across clients.

Executive ViewAI

Why It Matters

A defect in the widely used http-cache-semantics library (versions through 4.2.0) can cause shared caches to hand one user's cached response to a different user, exposing sensitive per-user data. Any organization running multi-user or shared caching tiers in front of authenticated content - including Node.js API gateways, reverse proxies, and CDNs that depend on this library - carries privacy, customer-trust, and regulatory exposure. Exploitation is conditional and non-deterministic, requiring a shared cache deployment plus an origin that emits a wildcard Vary header, and no public exploit code has been identified at time of analysis.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: treat any response carrying a wildcard 'Vary: *' directive as non-cacheable at the CDN, reverse proxy, or application layer; disable or bypass shared caching for authenticated and per-user responses using Cache-Control: private, no-store; partition caches per user, session, or tenant so a response generated for one client cannot satisfy another's request; wrap or patch the library to normalize wildcard Vary values before cache lookups; and enable cache-hit auditing to detect and contain any cross-user response reuse until a vendor fix is available.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
Ubiquitous
http-cache-semantics is a foundational npm caching dependency pulled transitively across the Node ecosystem
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.3 Affected
SUSE Linux Enterprise Micro 5.4 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy