CVE-2026-56017
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
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
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
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.
- Record
CVE-2026-56017- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-476, CWE-125
- Updated
- 2026-11-02
EUVDEUVD-2026-40181
7.5
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.
- Record
EUVD-2026-40181- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-72fp-jmq3-p5xj
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl crash with a NULL pointer dereference when...
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.
- Record
GHSA-72fp-jmq3-p5xj- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-56017- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-125, CWE-476
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-56017
7.5
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.
- Record
ALPINE-CVE-2026-56017- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSV
7.5
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
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.
- Record
CVE-2026-56017- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-125, CWE-476
- Updated
- 2026-11-02
Show 4 moreShow less
OSVDEBIAN-CVE-2026-56017
7.5
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.
- Record
DEBIAN-CVE-2026-56017- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-56017
7.5
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.
- Record
UBUNTU-CVE-2026-56017- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVMGASA-2026-0283 No score
Updated perl-JavaScript-Minifier-XS package fixes security vulnerabilities
The updated package fixes security vulnerabilities: 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. (CVE-2026-56017) JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth. (CVE-2026-56018)
- Record
MGASA-2026-0283- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11158-1 No score
perl-JavaScript-Minifier-XS-0.160.0-1.1 on GA media
These are all security issues fixed in the perl-JavaScript-Minifier-XS-0.160.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11158-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-javascript-minifier-xsAlpine:v3.24 |
before 0.16-r0 | 0.16-r0 |
libjavascript-minifier-xs-perlDebian:12 |
All versions, plus listed versions 0.15-10.16-1 |
None known |
libjavascript-minifier-xs-perlDebian:13 |
All versions, plus listed versions 0.15-10.16-1 |
None known |
libjavascript-minifier-xs-perlDebian:14 |
before 0.16-1, plus listed versions 0.15-1 |
0.16-1 |
perl-JavaScript-Minifier-XSMageia:10 From an advisory covering 2 CVEs |
before 0.160.0-1.mga10 | 0.160.0-1.mga10 |
perl-JavaScript-Minifier-XSMageia:9 From an advisory covering 2 CVEs |
before 0.160.0-1.mga9 | 0.160.0-1.mga9 |
libjavascript-minifier-xs-perlUbuntu:16.04:LTS |
All versions, plus listed versions 0.11-10.11-1build1 |
None known |
libjavascript-minifier-xs-perlUbuntu:18.04:LTS |
All versions, plus listed versions 0.11-1build3 |
None known |
libjavascript-minifier-xs-perlUbuntu:20.04:LTS |
All versions, plus listed versions 0.11-1build40.11-1build5 |
None known |
libjavascript-minifier-xs-perlUbuntu:22.04:LTS |
All versions, plus listed versions 0.13-10.15-10.15-1build1 |
None known |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
libjavascript-minifier-xs-perlUbuntu:24.04:LTS |
All versions, plus listed versions 0.15-1build20.15-1build30.15-1build40.15-1build5 |
None known |
libjavascript-minifier-xs-perlUbuntu:25.10 |
All versions, plus listed versions 0.15-1build6 |
None known |
libjavascript-minifier-xs-perlUbuntu:26.10 |
All versions, plus listed versions 0.15-1build60.16-10.16-1build1 |
None known |
libjavascript-minifier-xs-perlUbuntu:26.04:LTS |
All versions, plus listed versions 0.15-1build6 |
None known |
perl-JavaScript-Minifier-XSopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 0.160.0-1.1 | 0.160.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-56017 is a high vulnerability (CVSS 7.5) in Gtermars Javascript::minifier::xs, published June 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.49%, the 42nd percentile. Fixed in perl-javascript-minifier-xs 0.16-r0.
References
metacpan.org/release/GTERMARS/JavaScript-Minifier-XS-0.16/changes
openwall.com/lists/oss-security/2026/06/29/16
nvd.nist.gov/vuln/detail/CVE-2026-56017
github.com/advisories/GHSA-72fp-jmq3-p5xj
security.alpinelinux.org/vuln/CVE-2026-56017
cpan.org/modules
Show 12 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56017.json
github.com/bleargh45/JavaScript-Minifier-XS
security-tracker.debian.org/tracker/CVE-2026-56017
advisories.mageia.org/MGASA-2026-0283.html
bugs.mageia.org/show_bug.cgi?id=35780
openwall.com/lists/oss-security/2026/06/29/17
lists.opensuse.org/archives/list/[email protected]/message/JRQ3MRFSD4VDM6LUSDFWM5CGXIVDZXIV
ubuntu.com/security/CVE-2026-56017
cve.org/CVERecord?id=CVE-2026-56017
lists.security.metacpan.org/cve-announce/msg/41396063
suse.com/security/cve/CVE-2026-56017
suse.com/security/cve/CVE-2026-56018