An integer overflow vulnerability exists in the QuickJS regular expression engine (libregexp) due to an inconsistent representation of the bytecode buffer size. * The regular expression bytecode is stored in a DynBuf structure, which correctly uses a $\text{size}\_\text{t}$ (an unsigned type, typically 64-bit) for its size member. * However, several functions, such as re_emit_op_u32 and other internal parsing routines, incorrectly cast or store this DynBuf $\text{size}\_\text{t}$ value into a signed int (typically 32-bit). * When a large or complex regular expression (such as those generated by a recursive pattern in a Proof-of-Concept) causes the bytecode size to exceed $2^{31}$ bytes (the maximum positive value for a signed 32-bit integer), the size value wraps around, resulting in a negative integer when stored in the int variable (Integer Overflow). * This negative value is subsequently used in offset calculations. For example, within functions like re_parse_disjunction, the negative size is used to compute an offset (pos) for patching a jump instruction. * This negative offset is then incorrectly added to the buffer pointer (s->byte\_code.buf + pos), leading to an out-of-bounds write on the first line of the snippet below: put_u32(s->byte_code.buf + pos, len);
Conclusion & alert: CVE-2025-62495 is rated Exploit Available (50/100): CVSS High severity, with low exploitation likelihood (EPSS 0.04%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
| EDB-ID | Source | Kind | Published | Link |
|---|---|---|---|---|
| — | nvd_ref | exploit_tag | Exploit-DB ↗ |
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2025-11-27 | 0.05% | 0.04% | -0.01% |
| 2 | 2025-11-21 | 0.04% | 0.05% | +0.01% |
| 3 | 2025-11-18 | — | 0.04% | — |
Full EPSS history (5 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 7.1 | 4.0 | HIGH |
|
— | — | [email protected] |
| 8.8 | 3.1 | HIGH |
|
2.8 | 5.9 | [email protected] |
| vendor | priority | summary | link |
|---|---|---|---|
alpine
|
— | CVE-2025-62495: 1 source package rows (quickjs); 8 state rows across 3 repos (3.22-community, 3.23-community, edge-community); fixed 0, open 8. | https://security.alpinelinux.org/vuln/CVE-2025-62495 |
debian
|
not yet assigned | CVE-2025-62495 not yet assigned priority: Debian including 1 source packages (quickjs), 3 status rows across 3 suites (forky, sid, trixie): open 3. | https://security-tracker.debian.org/tracker/CVE-2025-62495 |
ubuntu
|
medium | CVE-2025-62495 medium priority: Ubuntu including 1 source packages (quickjs), 5 status rows across 5 suites (jammy, noble, plucky, questing, upstream): needs-triage 3, DNE 1, ignored 1. | https://ubuntu.com/security/CVE-2025-62495 |
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| quickjs_project | quickjs | < 2025-09-13 | cpe:2.3:a:quickjs_project:quickjs:*:*:*:*:*:*:*:* |
| URL | Tags |
|---|---|
| https://bellard.org/quickjs/Changelog | Release Notes |
| https://issuetracker.google.com/434196926 | Exploit Issue Tracking |