Skip to main content

Browserslist EUVDEUVD-2026-56600

| CVE-2026-73089 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-11 security-advisories@github.com GHSA-c83g-rgw3-j3cx
7.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Identify runtime browserslist() API endpoint
  2. Delivery
    Craft unique since <year>-<month>-<day> query strings
  3. Exploit
    Submit high-volume requests with varied date keys
  4. Execution
    Grow Node.js heap unboundedly via unpurged cache entries
  5. Persist
    Exhaust process memory
  6. Impact
    Trigger OOM crash and service outage

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that an attacker can supply or influence the query string arguments passed to the browserslist() function within a running Node.js process at runtime - for example, through an HTTP API parameter, a WebSocket message, or any other externally-reachable code path that forwards input into browserslist() without sanitization. The since <year>-<month>-<day> date-based query format is specifically exploitable because it generates an effectively unbounded key space from syntactically valid queries. Exploitation is categorically NOT possible when browserslist is invoked exclusively at build time with static configuration strings (e.g., .browserslistrc files read during a webpack or Babel compilation step), which is the dominant usage pattern across the npm ecosystem. Defenders who set BROWSERSLIST_DISABLE_CACHE=true believing it fully disables caching remain exposed to the parseCache growth vector. Authentication is not required per CVSS PR:N in deployments where the vulnerable code path is externally reachable without credentials.

Impact

The NVD-assigned CVSS of 7.5 (AV:N/AC:L/PR:N/UI:N/A:H) reflects the maximum theoretical risk surface and overstates real-world exploitability for most deployments. Browserslist is overwhelmingly consumed as a build-time dependency with static configuration strings - a deployment pattern that provides zero attack surface because no external input ever reaches browserslist() at runtime. The actual risk is concentrated in the narrow subset of applications that invoke browserslist() at runtime with externally-controlled query arguments (e.g., an HTTP API that accepts per-request browser targeting). The BROWSERSLIST_DISABLE_CACHE bypass is a secondary risk signal: organizations that deployed this environment variable as a compensating control believing it disabled all caching remain exposed to parseCache growth. No CISA KEV listing exists, no public exploit has been identified, and EPSS data was not provided - collectively these signals suggest this has not seen active exploitation and likely requires targeted abuse of a specific application architecture rather than broad opportunistic scanning. This is a genuine priority for runtime-exposure deployments but effectively negligible for build-only usage.

Exploit ScenarioDerived

An attacker who discovers an HTTP API endpoint that accepts browser targeting parameters and passes them to browserslist() at runtime sends thousands of requests with unique since 1990-01-<incrementing-day> query strings, each generating a distinct cache key that causes both the result cache and parseCache to grow. With no eviction boundary in versions before 4.28.7, Node.js heap grows linearly with each unique query until the process is terminated by the operating system or Node.js runtime with an out-of-memory error, resulting in service unavailability. No public proof-of-concept code has been identified, but the attack is mechanically trivial to construct from the public advisory description alone.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 11, 2026

Unbounded in-memory caches in Browserslist prior to 4.28.7 allow unauthenticated remote denial-of-service via Node.js out-of-memory crash when an attacker can influence repeated query values passed to browserslist() at runtime. Both the query-result cache and the parseQuery AST cache grew as plain JavaScript objects with no size cap, TTL, or eviction - the since <year>-<month>-<day> syntax provides a practically infinite key space ideal for flooding. The caller-controlled BROWSERSLIST_DISABLE_CACHE environment variable is ineffective as a compensating control because it only suppresses the result cache, not parseCache. No public exploit code has been identified and the vulnerability is not in CISA KEV; the vendor-released fix is version 4.28.7.

RemediationAI

Upgrade Browserslist to version 4.28.7 or later - this is the vendor-released patch confirmed by commit f2931a3ff2a3a31abf84ef01a7400b270aad6405 and the release tag at https://github.com/browserslist/browserslist/releases/tag/4.28.7. Run npm update browserslist or pin browserslist@>=4.28.7 in package.json; audit transitive dependents (babel-preset-*, postcss, autoprefixer) which bundle their own copy and may require their own updates. If upgrade is immediately blocked, the primary compensating control is to audit and restrict all runtime code paths that call browserslist() with externally-supplied query strings - eliminate or sanitize those inputs at the application boundary. Do NOT rely on BROWSERSLIST_DISABLE_CACHE=true as a fix: it suppresses result caching but leaves parseCache unbounded, providing incomplete protection with a false sense of security. Applications using browserslist exclusively at build time in CI/CD pipelines face no runtime attack surface and may schedule this as routine maintenance.

Affected VersionsENISA

browserslist < 4.28.7

Affected Packages

npm browserslist fix: 4.28.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

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

Technical ContextAI · show details

Browserslist is an npm package (Node.js) widely consumed as a shared browser-targeting configuration layer by frontend toolchains including Babel, PostCSS/Autoprefixer, webpack, and Create React App. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): in index.js, both cache (mapping serialized query+context pairs to resolved browser lists) and parseCache (mapping raw query strings to parsed AST results) were implemented as plain JavaScript objects with no eviction mechanism. Because cache keys are derived from caller-supplied query strings, the since <year>-<month>-<day> syntax generates a near-unbounded key space that an attacker can exploit to inflate Node.js heap linearly until the process exhausts memory. The fix in 4.28.7 (commit f2931a3ff2a3a31abf84ef01a7400b270aad6405) converts both structures to ES6 Maps with a hard 500-entry FIFO cap enforced by a boundedCacheSet() helper that evicts the oldest entry before inserting when the limit is reached. No CPE strings were provided in the input data.

Know when Node.js 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 (github) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.9 MEDIUM

AC:H because exploitability requires a non-default runtime deployment where user input reaches browserslist(); build-time-only use (the norm) has zero attack surface.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Aug 11, 2026 - 18:19 EUVD
CVE Published
Aug 11, 2026 - 17:19 cve.org
HIGH 7.5

DescriptionCVE.org

Browserslist is a configuration tool for sharing target browsers and Node.js versions between front-end tools. Prior to 4.28.7, index.js retains every distinct (queries, context) result in cache and every parseQueries() AST in parseCache without a size cap, TTL, or eviction, allowing an attacker who can influence repeated browserslist() query values, including valid since <year>-<month>-<day> queries, to bypass the caller-controlled BROWSERSLIST_DISABLE_CACHE mitigation and cause linear memory growth followed by an out-of-memory process crash. This issue is fixed in version 4.28.7.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 27 npm packages depend on browserslist (10 direct, 18 indirect)

Ecosystem-wide dependent count for version 4.28.7.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

Browserslist versions before 4.28.7 contain a denial-of-service vulnerability affecting any application processing browser query data in Node.js environments. No public exploit identified at time of analysis, but the attack is trivial to execute-an attacker can trigger out-of-memory crashes by flooding query caches with varied inputs, causing unplanned service outages. Organizations running vulnerable versions should prioritize patching to prevent availability disruptions.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
High
core dependency of major JavaScript frontend toolchains globally
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA 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 Yes
EPSS 0.4%
Patch available Yes
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
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Leap 16.0 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected

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