CVE-2025-46687 json
quickjs-ng through 0.9.0 has a missing length check in JS_ReadString for a string, leading to a heap-based buffer overflow.
published 2025-04-27 18 mo ago modified 2026-06-17 4 mo ago also EUVD-2025-12428
- cvss
- 5.6
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 23%
- public exploits
- 0
- none known
Summary
quickjs-ng through 0.9.0 has a missing length check in JS_ReadString for a string, leading to a heap-based buffer overflow. QuickJS before 2025-04-26 is also affected.
Patch / fix
- QuickJS Project QuickJS 2025-04-26
- quickjs Debian 14, Debian 13 2025.04.26-1
debian advisories DEBIAN-CVE-2025-46687
- quickjs-ng Alpine 3.24, Alpine 3.23 0.10.0-r0
alpine advisories ALPINE-CVE-2025-46687
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- github.com/bellard/quickjs@1eb05e4 commit
- github.com/quickjs-ng/quickjs@28fa43d commit
- github.com/quickjs-ng/quickjs#1020 pull request
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-46687 updated cvss 5.6
quickjs-ng: "Heap-Based Buffer Overflow in QuickJS's JS_ReadString Function
-
Red Hat All currently supported Red Hat productsnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 18 mo ago
Exploit prediction
0.30% chance of exploitation in the next 30 days, higher than 23% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/quickjs-ng/quickjs/issues/1018 referenced PoC, tagged "exploit" by a source, unverified
- github.com https://github.com/bellard/quickjs/issues/399 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.6 | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:L |
| NVD | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- QuickJS Project QuickJS
Classification
- Weakness
-
- CWE-770 Allocation of Resources Without Limits or Throttling
References
-
github.com
/quickjs-ng/quickjs/pull/1020
issue-tracking, patch
-
github.com
/bellard/quickjs/commit/1eb05e44fad89daafa8ee3eb74b8520b4a37ec9a
patch
-
github.com
/quickjs-ng/quickjs/commit/28fa43d3ddff2c1ba91b6e3a788b2d7ba82d1465
patch
-
github.com
/quickjs-ng/quickjs/issues/1018
exploit, issue-tracking, vendor-advisory
-
github.com
/bellard/quickjs/issues/399
exploit, issue-tracking, vendor-advisory
-
bellard.org
/quickjs/Changelog
release-notes
Sources
- CVE List CVE-2025-46687
- NVD CVE-2025-46687
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.