Every CVE Search/ Get API key

CVE-2025-62494

Type confusion in string addition in QuickJS

7.1 High

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine.

  • The code first checks if the left-hand operand is a string.

  • It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf).

  • During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array).

  • The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string.

This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Attack profile

How easy it is to exploit

Attack vector
Adjacent network
Complexity
High
Privileges needed
Low
User interaction
Passive

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
Low

Exploit likelihood

0.53%Up 0.5 points since Oct 17, 2025
90%50%10%1%

What each source reports

CVE List Score used 7.1

Type confusion in string addition in QuickJS

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine.

  • The code first checks if the left-hand operand is a string.

  • It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf).

  • During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array).

  • The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string.

This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
CVE-2025-62494
CVSS 4.0
7.1 HighCVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L
Weakness
CWE-704
Updated
2026-11-02
EUVDEUVD-2025-34780 7.1

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine.

  • The code first checks if the left-hand operand is a string.

  • It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf).

  • During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array).

  • The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string.

This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
EUVD-2025-34780
CVSS 4.0
7.1 HighCVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-7gcv-76g2-94qm 7.1

A type confusion vulnerability exists in the handling of the string addition (+) operation within...

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine.

  • The code first checks if the left-hand operand is a string.

  • It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf).

  • During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array).

  • The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string.

This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
GHSA-7gcv-76g2-94qm
CVSS 4.0
7.1 HighCVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
8.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-704
Updated
2026-11-02
NVD 7.1

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine.

  • The code first checks if the left-hand operand is a string.

  • It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf).

  • During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array).

  • The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string.

This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
CVE-2025-62494
CVSS 4.0
7.1 HighCVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
8.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-704
Updated
2026-11-02
OSV 8.8

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine.

  • The code first checks if the left-hand operand is a string.

  • It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf).

  • During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array).

  • The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string.

This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
CVE-2025-62494
CVSS 3.1
8.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2025-62494 8.8

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine. * The code first checks if the left-hand operand is a string. * It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf). * During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array). * The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string. This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
DEBIAN-CVE-2025-62494
CVSS 3.1
8.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2025-62494 7.1

A type confusion vulnerability exists in the handling of the string addition (+) operation within the QuickJS engine. * The code first checks if the left-hand operand is a string. * It then attempts to convert the right-hand operand to a primitive value using JS_ToPrimitiveFree. This conversion can trigger a callback (e.g., toString or valueOf). * During this callback, an attacker can modify the type of the left-hand operand in memory, changing it from a string to a different type (e.g., an object or an array). * The code then proceeds to call JS_ConcatStringInPlace, which still treats the modified left-hand value as a string. This mismatch between the assumed type (string) and the actual type allows an attacker to control the data structure being processed by the concatenation logic, resulting in a type confusion condition. This can lead to out-of-bounds memory access, potentially resulting in memory corruption and arbitrary code execution in the context of the QuickJS runtime.

Record
UBUNTU-CVE-2025-62494
CVSS 4.0
7.1 HighCVSS:4.0/AV:A/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:L/SC:H/SI:H/SA:L
CVSS 3.1
8.8 HighCVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
quickjs
Debian:13
All versions, plus listed versions
2025.04.26-1
None known
quickjs
Debian:14
All versions, plus listed versions
2025.04.26-1
None known
quickjs
Ubuntu:Pro:24.04:LTS
All versions, plus listed versions
2021.03.27-12021.03.27-1ubuntu0.1~esm1
None known
quickjs
Ubuntu:25.10
All versions, plus listed versions
2024.01.13-52025.04.26-1
None known
quickjs
Ubuntu:26.10
All versions, plus listed versions
2025.04.26-1build1
None known
quickjs
Ubuntu:26.04:LTS
All versions, plus listed versions
2025.04.26-12025.04.26-1build1
None known

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2025-62494 is a high vulnerability (CVSS 7.1) in Quickjs, published October 16, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.53%, the 44th percentile. No source names a fixed version.

References

MoveEnter Open