Heap buffer overflow in QuickJS-NG via Proxy ownKeys enumeration
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-190 and the CVSS impact.
Summary
QuickJS-NG before 0.16.0 contains an integer overflow in js_proxy_get_own_property_names() that causes a heap buffer overflow on 32-bit hosts (CWE-190). A local attacker with low privileges who can run JavaScript can return a large array-like object from a Proxy ownKeys trap, which can crash the host or lead to code execution.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
QuickJS-NG before 0.16.0 contains an integer overflow in js_proxy_get_own_property_names() in quickjs.c that causes a heap buffer overflow on 32-bit hosts. Attackers running JavaScript can return a large array-like object from a Proxy ownKeys trap to wrap the allocation size, causing crashes or potential code execution.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| quickjs-ng | QuickJS-NG | before 0.16.0 | 0.16.0 | Patch available | CNA |
- QuickJS-NG Vendorquickjs-ng Affected before 0.16.0 Fixed in 0.16.0 Patch available CNA
Remediation
Upgrade QuickJS-NG to version 0.16.0.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA QuickJS-NG (quickjs-ng) Fixed in 0.16.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
QuickJS-NG 0.16.0
3 records Highest priority Priority HIGH 1 HIGH, 2 LOW
Other records, highest priority first
- TI-2026-83831 Heap buffer overflow in QuickJS-NG TypedArray sort on 32-bit hostsPriority HIGH 69
- TI-2026-83832 Memory leak in QuickJS-NG Atomics.store exhausts heap memoryPriority LOW 37
Vendor assessments
Timeline
- 2026-11-02 Threatist record created from CVE-2026-120438
- 2026-11-02 Alias added: GHSA-m9xj-cppc-fm6c
- 2026-11-04 Priority changed: MEDIUM → LOW
- 2026-11-05 CISA SSVC decision points changed
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 CVSS score added · Red Hat
References
More quickjs-ng vulnerabilities
- TI-2026-00603 quickjs-ng quickjs quickjs.c js_typed_array_constructor heap-based overflow CVSS 4.0MEDIUM 6.9
- TI-2025-29366 quickjs-ng through 0.9.0 has an incorrect size calculation in JS_ReadBigInt for a BigInt… CVSS 3.1HIGH 8.4
- TI-2026-83831 Heap buffer overflow in QuickJS-NG TypedArray sort on 32-bit hosts CVSS 4.0HIGH 8.3
- TI-2025-29365 Resource allocation without limits in QuickJS CVSS 3.1HIGH 7.8
- TI-2026-00873 quickjs-ng quickjs quickjs.c js_typed_array_constructor_ta heap-based overflow CVSS 4.0MEDIUM 5.3
- TI-2026-00872 quickjs-ng quickjs Atomics Ops quickjs.c use after free CVSS 4.0MEDIUM 5.3
Sources
- CVE-2026-120438 · CVE Program
- CVE-2026-120438 · NVD
- FIRST EPSS
- GHSA-m9xj-cppc-fm6c · GitHub Advisory Database · CC BY 4.0
- CVE-2026-120438 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences