# CVE-2026-37630: QuickJS-NG arbitrary code execution in js_mapped_arguments_mark

Source: https://junglewise.ai/threats/cve-2026-37630-quickjs-ng-arbitrary-code-execution-in-js-mapped-arguments-mark  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-05-11. Updated: 2026-05-14  
License: CC BY 4.0 with a link back

CVE-2026-37630 · Severity: high · CVSS 7.3 · Published 2026-05-11

QuickJS-NG is a small, embeddable JavaScript engine used by developers to add scripting capabilities to their applications. A security flaw in how the engine manages memory during garbage collection could allow a malicious script to crash the application or execute unauthorized code. This could lead to a complete compromise of the application's security and the data it processes.

Technologies: [QuickJS-NG](https://junglewise.ai/threats/technologies/quickjs-ng). Vendors: [QuickJS-NG](https://junglewise.ai/threats/vendors/quickjs-ng).

## Quick answers

**Is CVE-2026-37630 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-37630 being exploited in the wild.

**How severe is CVE-2026-37630?** High severity, with a CVSS score of 7.3, published 11 May 2026.

**Which products and versions are affected?** QuickJS-NG 0.12.1.

**Is there a fix for CVE-2026-37630?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-37630 attacked?** It is attacked with local access, in a software library.

**Am I affected by CVE-2026-37630?** Check whether you run QuickJS-NG at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

A vulnerability exists in QuickJS-NG v0.12.1 within the `js_mapped_arguments_mark` function. The root cause is that the function fails to distinguish between detached and non-detached `JSVarRef` entries when marking children for garbage collection. Non-detached references are not tracked in the GC list and contain uninitialized `link.prev` and `link.next` pointers. When `gc_decref_child` calls `list_del` on these entries, it dereferences these uninitialized pointers. An attacker can use heap grooming techniques to control the memory reused by these references, turning the uninitialized pointers into a 'write-what-where' primitive to achieve arbitrary code execution. This requires the ability to execute malicious JavaScript within the engine.

## Affected products

- QuickJS-NG QuickJS-NG 0.12.1

## Timeline

- 2026-05-11: disclosed: Issue reported on GitHub repository
- 2026-05-11: advisory: CVE published by MITRE/NVD

## References

- [https://github.com/quickjs-ng/quickjs/issues/1400](https://github.com/quickjs-ng/quickjs/issues/1400)

## Related threats

- [QuickJS-NG memory leak in Atomics.store()](https://junglewise.ai/threats/cve-2026-120440-quickjs-ng-before-0-16-0-contains-a-memory-leak-vulnerability-in)
- [QuickJS-NG integer overflow in TypedArray sort](https://junglewise.ai/threats/cve-2026-120439-quickjs-ng-before-0-16-0-contains-an-integer-overflow-in-js)
- [QuickJS-NG integer overflow in Proxy ownKeys enumeration](https://junglewise.ai/threats/cve-2026-120438-quickjs-ng-before-0-16-0-contains-an-integer-overflow-in-js)
