Use-after-free in js_print_object in QuickJS
Key facts
- Attack vector
- Adjacent network
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- High
- Attack requirements
- Present
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-416 and the CVSS impact.
Summary
In quickjs, in js_print_object, when printing an array, the function first fetches the array length and then loops over it. The issue is, printing a value is not side-effect free. An attacker-defined callback could run during js_print_value, during which the array could get resized and len1 become out of bounds. This results in a use-after-free.A second instance occurs in the same function during printing of a map or set objects. The code iterates over ms->records list, but once again, elements could be removed from the list during js_print_value call.
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
Remediation
- Fix · CNA QuickJS (QuickJS) Fixed in 2025-09-13
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
QuickJS 2025-09-13
7 records Highest priority Priority HIGH 4 HIGH, 3 MEDIUM
Other records, highest priority first
- TI-2025-38733 Use-after-free in js_std_promise_rejection_check in QuickJSPriority HIGH 73
- TI-2025-38738 Integer overflow in js_bigint_from_string in QuickJSPriority HIGH 66
- TI-2025-38737 Type confusion in string addition in QuickJSPriority HIGH 66
Timeline
- 2026-10-02 Threatist record created from CVE-2025-62490
- 2026-10-03 Alias added: GHSA-g55w-pj8g-frvg
References
More Quickjs vulnerabilities
- TI-2025-38733 Use-after-free in js_std_promise_rejection_check in QuickJS CVSS 4.0HIGH 8.8
- TI-2025-42911 A crafted JavaScript input executed with the QuickJS release 2025-09-13, fixed in commit… CVSS 3.1HIGH 7.5
- 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-2025-38738 Integer overflow in js_bigint_from_string in QuickJS CVSS 4.0HIGH 7.1
- TI-2025-38737 Type confusion in string addition in QuickJS CVSS 4.0HIGH 7.1
- TI-2025-38736 Type confusion in string addition in QuickJS CVSS 4.0HIGH 7.1
Sources
- CVE-2025-62490 · CVE Program
- CVE-2025-62490 · NVD
- FIRST EPSS
- GHSA-g55w-pj8g-frvg · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences