CVE-2026-56018
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, 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 leak memory on every call to minify(), allowing unbounded memory growth
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
CVE-2026-56018- 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-401, CWE-400
- Updated
- 2026-11-02
EUVDEUVD-2026-40182
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
EUVD-2026-40182- 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-fvxv-8c37-qrc6
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(),...
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
GHSA-fvxv-8c37-qrc6- 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-400
- Updated
- 2026-11-02
NVD
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
CVE-2026-56018- 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-400, CWE-401
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-56018
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
ALPINE-CVE-2026-56018- 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 leak memory on every call to minify(), allowing unbounded memory growth
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth.
In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet.
A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
CVE-2026-56018- 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-400, CWE-401
- Updated
- 2026-11-02
Show 4 moreShow less
OSVDEBIAN-CVE-2026-56018
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth. In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet. A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
DEBIAN-CVE-2026-56018- 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-56018
7.5
JavaScript::Minifier::XS versions before 0.16 for Perl leak memory on every call to minify(), allowing unbounded memory growth. In JsMinify (XS.xs) the cleanup frees only the NodeSet structures and never the per-token contents buffers allocated in JsSetNodeContents; JsDiscardNode unlinks nodes without freeing their contents. Each token's contents buffer is therefore leaked on every call, and the two early returns taken when the node list is empty leak the whole NodeSet. A long-lived process that minifies repeatedly, such as an asset pipeline or a server-side minifier endpoint, grows in memory without bound until it exhausts available memory and is killed, causing denial of service.
- Record
UBUNTU-CVE-2026-56018- 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-56018 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.61%, the 49th percentile. Fixed in perl-javascript-minifier-xs 0.16-r0.
References
github.com/bleargh45/JavaScript-Minifier-XS/issues/10
metacpan.org/release/GTERMARS/JavaScript-Minifier-XS-0.16/changes
openwall.com/lists/oss-security/2026/06/29/17
nvd.nist.gov/vuln/detail/CVE-2026-56018
github.com/advisories/GHSA-fvxv-8c37-qrc6
security.alpinelinux.org/vuln/CVE-2026-56018
Show 13 moreShow less
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56018.json
github.com/bleargh45/JavaScript-Minifier-XS
security-tracker.debian.org/tracker/CVE-2026-56018
advisories.mageia.org/MGASA-2026-0283.html
bugs.mageia.org/show_bug.cgi?id=35780
openwall.com/lists/oss-security/2026/06/29/16
lists.opensuse.org/archives/list/[email protected]/message/JRQ3MRFSD4VDM6LUSDFWM5CGXIVDZXIV
ubuntu.com/security/CVE-2026-56018
cve.org/CVERecord?id=CVE-2026-56018
lists.security.metacpan.org/cve-announce/msg/41396069
suse.com/security/cve/CVE-2026-56017
suse.com/security/cve/CVE-2026-56018