Skip to main content

JavaScript::Minifier::XS EUVDEUVD-2026-40181

| CVE-2026-56017 HIGH
NULL Pointer Dereference (CWE-476)
2026-06-29 CPANSec GHSA-72fp-jmq3-p5xj
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Identify service minifying untrusted JS
  2. Delivery
    Send request with leading slash input
  3. Exploit
    Backward token walk runs off list head
  4. Execution
    Read/dereference NULL contents pointer
  5. Impact
    Worker process crashes (denial of service)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
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

The concrete prerequisite is that the input passed to minify() must have a slash as its first meaningful token - start-of-input, or only whitespace and comments, followed by '/'. Input as small as a single '/' byte triggers the crash. The deployment condition that makes this remotely exploitable is that the vulnerable minify() API must receive attacker-influenced JavaScript (e.g., a service that minifies untrusted or third-party JS from a request). What LIMITS exploitation: the module version must be before 0.16, and the attack surface exists only where untrusted input reaches minify() - a minifier used purely on trusted, developer-authored source at build time is not remotely exploitable and effectively degrades to a local/offline issue. No authentication, privileges, or user interaction are required against a network-exposed minification endpoint (PR:N/UI:N).

Impact

The signals are internally consistent and point to a genuine but bounded availability risk. The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yields 7.5 (High) driven entirely by availability - there is no confidentiality or integrity impact, so this is a pure DoS, not RCE despite CWE-476 being a memory-safety class. SSVC reinforces this: Exploitation 'none' (no observed exploitation), Automatable 'yes' (trivial, deterministic trigger), Technical Impact 'partial'. EPSS of 0.49% (38th percentile) is low and aligns with the absence of a KEV listing and no known public exploit code. One caveat on attack vector: AV:N is only accurate when the vulnerable minify() call sits behind a network-facing service that feeds it attacker-controlled JavaScript; for a purely local/offline build-time minifier the practical vector is closer to local. Bottom line: prioritize patching where the module processes untrusted or third-party JS in a request path (exploitation is deterministic and automatable), but this is not a critical RCE and can be scheduled rather than treated as an emergency.

Exploit ScenarioDerived

An attacker submits a snippet of JavaScript beginning with a slash - even a single '/' byte - to a web service, build API, or SaaS feature that minifies user-supplied or third-party JavaScript via JavaScript::Minifier::XS. The tokenizer's regexp-versus-division disambiguator walks past the head of the node list, dereferences NULL, and crashes the worker process, denying service. Because the trigger is deterministic and requires no authentication or user interaction (AV:N/AC:L/PR:N/UI:N), the request can be scripted and repeated; no public POC is currently identified, but the reproduction is trivially described in the disclosure.

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

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

Alert me

AnalysisAIv1 – Jul 22, 2026

Denial of service in JavaScript::Minifier::XS before 0.16 (a Perl XS module) lets remote attackers crash any service that minifies untrusted JavaScript by supplying input whose first meaningful token is a slash - as little as a single '/' byte. The flaw is a NULL pointer dereference (CWE-476) reachable directly through the public minify() API, terminating the calling process. There is no public exploit identified at time of analysis and it is not in CISA KEV; EPSS is low (0.49%, 38th percentile), consistent with a crash-only availability bug rather than a code-execution target.

RemediationAI

Upgrade to JavaScript::Minifier::XS 0.16 or later, the vendor-released patched version available on CPAN (https://metacpan.org/release/GTERMARS/JavaScript-Minifier-XS-0.16/changes); this is the primary and complete fix. Until the upgrade is deployed, if the module processes untrusted input, wrap the minify() call in a crash-isolated worker or child process so a single request cannot take down the parent service, and/or add an input-validation guard in the calling code that rejects input whose first non-whitespace, non-comment character is a slash - note that naive filtering of leading slashes may reject legitimate scripts that begin with a regex literal, so prefer process isolation over content filtering. Restrict the minification endpoint to authenticated or trusted callers where feasible to reduce exposure. Advisory and disclosure details: oss-security https://seclists.org/oss-sec/2026/q2/1065, NVD https://nvd.nist.gov/vuln/detail/CVE-2026-56017, and VulDB https://vuldb.com/vuln/374740.

Affected VersionsENISA

JavaScript::Minifier::XS 0 <0.16

Affected Packages

euvd javascript_minifier_xs fix: 0.16

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

The affected component is JavaScript::Minifier::XS, a Perl module (namespace gtermars per the CPE cpe:2.3:a:gtermars:javascript::minifier::xs) that wraps a C tokenizer/minifier via Perl's XS (native extension) layer for speed. The root cause lives in JsTokenizeString within XS.xs: the tokenizer must disambiguate a '/' as either the start of a regular-expression literal or a division operator, and it does so by inspecting the last byte of the previous token. It walks backward over whitespace and comment nodes to find that token. When '/' is the first meaningful token - preceded only by start-of-input, whitespace, or comments - the backward walk runs off the head of the linked node list to NULL, and the code then reads through a NULL contents pointer at an underflowed length index; a subsequent identifier check dereferences the same NULL pointer. CWE-476 (NULL Pointer Dereference) precisely captures this: a missing guard for the 'no preceding token' boundary condition causes an invalid memory read/dereference and a hard process crash.

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

Deterministic single-byte trigger with no auth or interaction gives AC:L/PR:N/UI:N; impact is a pure process crash so C:N/I:N/A:H, and AV:N holds only where a remote service feeds untrusted JS to minify().

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

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

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

Lifecycle Timeline

3
Patch available
Jun 29, 2026 - 22:02 EUVD
CVE Published
Jun 29, 2026 - 19:38 cve.org
HIGH 7.5
CVE Published
Jun 29, 2026 - 19:38 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

JavaScript::Minifier::XS versions before 0.16 for Perl crash with a NULL pointer dereference when the first meaningful token of the input is a slash.

The regexp versus division disambiguator in JsTokenizeString (XS.xs) inspects the previous token's last byte to choose between a regexp literal and a division operator. When a slash is the first meaningful token, with the start of input or only whitespace and comments before it, there is no valid preceding token: the walk back over whitespace and comment nodes runs off the head of the node list to NULL, and the byte lookup reads through a NULL contents pointer at an underflowed length index. The following identifier check dereferences the same NULL pointer.

The crash is reachable through the public minify() API, so input as small as a single slash byte crashes the calling process. A service that minifies untrusted or third-party JavaScript can be crashed by a remote request, causing denial of service.

Executive ViewAI

Why It Matters

JavaScript::Minifier::XS before version 0.16 contains a denial-of-service vulnerability that crashes any application using this module to process untrusted JavaScript. Organizations deploying this module for user-facing or critical services face interruption risk when processing certain malformed input. A vendor patch is available and should be deployed immediately to restore service availability guarantees.

Business Impact: High
Compensating Controls

Vendor-released patch: JavaScript::Minifier::XS version 0.16 or later. Upgrade all deployments to this version or newer.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Low
niche Perl XS minifier module, limited to Perl-based JS build/serving pipelines
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor 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.5%
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

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

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

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

CVE-2026-102827 CRITICAL POC
9.8 Sep 29

Command injection in simple-git, the Node.js library for running git commands and published on npm, affects all releases

CVE-2026-77615 HIGH POC
8.7 Sep 17

Stored DOM-based cross-site scripting in Paella Player's closed-caption rendering path (paella-core before 2.12.11) allo

CVE-2026-92776 HIGH POC
8.6 Sep 16

Authorization bypass in Wiki.js through 2.5.314 allows an authenticated user who has been granted access to at least one

CVE-2026-102826 HIGH POC
8.1 Sep 29

Untrusted git configuration includes reachable through simple-git before 4.0.0 let an attacker execute arbitrary command

CVE-2026-85715 HIGH POC
7.5 Sep 17

Improper memory allocation control in ExifReader before 4.41.1 allows remote attackers to exhaust heap memory and termin

CVE-2026-102278 HIGH POC
7.5 Sep 28

Deeply nested brace patterns cause unbounded recursion in the npm brace-expansion library, exhausting the native stack a

CVE-2026-102276 HIGH POC
7.5 Sep 28

Stack exhaustion in the npm library brace-expansion (all versions prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10) lets a craf

CVE-2026-92775 HIGH POC
7.1 Sep 16

Server-side request forgery in Wiki.js through 2.5.314 lets an authenticated user who holds page-editing permissions for

CVE-2026-101910 MEDIUM POC
6.9 Sep 28

The JavaScript library ip-address (npm) fails to treat the NAT64 local-use prefix 64:ff9b:1::/48 as private, so applicat

CVE-2026-101914 MEDIUM POC
6.5 Sep 28

Authorization bypass in the @grpc/grpc-js-xds package (the xDS/RBAC extension for @grpc/grpc-js) lets a request for one

CVE-2026-101912 MEDIUM POC
6.3 Sep 28

Cross-family subnet comparisons in the ip-address npm library (all versions before 10.7.1) can cause isInSubnet and isHo

CVE-2026-101911 MEDIUM POC
6.3 Sep 28

Denial of service in the ip-address JavaScript/npm library (all versions prior to 10.7.1) lets remote attackers stall or

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed

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