--disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom
In versions before 20.0.2, it was found that --disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom. The untrusted script and the rest of the application still run in the same Isolate/process, so attackers can deploy prototype pollution payloads to hijack important references like "process" in the example below, or to hijack control flow via flipping checks of undefined property. This vulnerability is due to an incomplete fix for CVE-2025-61927. The vulnerability is fixed in 20.0.2.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2025-62410
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 5 Nov 2026, 05:56 UTC · Revision 1
Source evidence
--disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom
core-osv · Original sourcePublished 15 Oct 2025, 17:16 UTC
In versions before 20.0.2, it was found that --disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom. The untrusted script and the rest of the application still run in the same Isolate/process, so attackers can deploy prototype pollution payloads to hijack important references like "process" in the example below, or to hijack control flow via flipping checks of undefined property. This vulnerability is due to an incomplete fix for CVE-2025-61927. The vulnerability is fixed in 20.0.2.
osv:CVE-2025-62410
Complete source record
{
"id": "45d64068472e9239e3d9752d66138f3ff82130f6f270cff304ccd5e1d882c567",
"url": "https://osv.dev/vulnerability/CVE-2025-62410",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "--disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom",
"summary": "In versions before 20.0.2, it was found that --disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom. The untrusted script and the rest of the application still run in the same Isolate/process, so attackers can deploy prototype pollution payloads to hijack important references like \"process\" in the example below, or to hijack control flow via flipping checks of undefined property. This vulnerability is due to an incomplete fix for CVE-2025-61927. The vulnerability is fixed in 20.0.2.",
"evidence": "osv:CVE-2025-62410",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2025-62410",
"aliases": [
"CVE-2025-62410",
"GHSA-qpm2-6cq5-7pq5"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/capricorn86/happy-dom",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "f4bd4ebe3fe5abd2be2bcea1c07043c8b0b70eea"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "20.0.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "f4bd4ebe3fe5abd2be2bcea1c07043c8b0b70eea"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "20.0.2"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"v20.0.1",
"v20.0.0",
"v19.0.2",
"v19.0.1",
"v19.0.0",
"v18.0.1",
"v18.0.0",
"v17.6.3",
"v17.6.2",
"v17.6.1",
"v17.6.0",
"v17.5.9",
"v17.5.8",
"v17.5.7",
"v17.5.6",
"v17.5.5",
"v17.5.4",
"v17.5.3",
"v17.5.2",
"v17.5.1",
"v17.5.0",
"v17.4.9",
"v17.4.8",
"v17.4.7",
"v17.4.6",
"v17.4.5",
"v17.4.4",
"v17.4.3",
"v17.4.2",
"v17.4.1",
"v17.4.0",
"v17.3.2",
"v17.3.1",
"v17.3.0",
"v17.2.4",
"v17.2.3",
"v17.2.2",
"v17.2.1",
"v17.2.0",
"v17.1.13",
"v17.1.12",
"v17.1.11",
"v17.1.10",
"v17.1.9",
"v17.1.8",
"v17.1.7",
"v17.1.6",
"v17.1.5",
"v17.1.4",
"v17.1.3",
"v17.1.2",
"v17.1.1",
"v17.1.0",
"v17.0.4",
"v17.0.3",
"v17.0.2",
"v17.0.1",
"v17.0.0",
"v16.8.1",
"v16.8.0",
"v16.7.3",
"v16.7.2",
"v16.7.1",
"v16.7.0",
"v16.6.0",
"v16.5.3",
"v16.5.2",
"v16.5.1",
"v16.5.0",
"v16.4.3",
"v16.4.2",
"v16.4.1",
"v16.4.0",
"v16.3.0",
"v16.2.9",
"v16.2.8",
"v16.2.7",
"v16.2.6",
"v16.2.5",
"v16.2.4",
"v16.2.3",
"v16.2.2",
"v16.2.1",
"v16.2.0",
"v16.1.0",
"v16.0.1",
"v16.0.0",
"v15.11.7",
"v15.11.6",
"v15.11.5",
"v15.11.4",
"v15.11.3",
"v15.11.2",
"v15.11.1",
"v15.11.0",
"v15.10.8",
"v15.10.7",
"v15.10.6",
"v15.10.5",
"v15.10.4",
"v15.10.3",
"v15.10.2",
"v15.10.1",
"v15.10.0",
"v15.9.0",
"v15.8.5",
"v15.8.4",
"v15.8.3",
"v15.8.2",
"v15.8.1",
"v15.8.0",
"v15.7.4",
"v15.7.3",
"v15.7.2",
"v15.7.1",
"v15.7.0",
"v15.6.1",
"v15.6.0",
"v15.5.0",
"v15.4.3",
"v15.4.2",
"v15.4.1",
"v15.4.0",
"v15.3.2",
"v15.3.1",
"v15.3.0",
"v15.2.0",
"v15.1.0",
"v15.0.0",
"v14.12.3",
"v14.12.2",
"v14.12.1",
"v14.12.0",
"v14.11.4",
"v14.11.3",
"v14.11.2",
"v14.11.1",
"v14.11.0",
"v14.10.3",
"v14.10.2",
"v14.10.1",
"v14.10.0",
"v14.9.0",
"v14.8.3",
"v14.8.2",
"v14.8.1",
"v14.8.0",
"v14.7.1",
"v14.7.0",
"v14.6.2",
"v14.6.1",
"v14.6.0",
"v14.5.2",
"v14.5.1",
"v14.5.0",
"v14.4.0",
"v14.3.9",
"v14.3.10",
"v14.3.8",
"v14.3.7",
"v14.3.6",
"v14.3.5",
"v14.3.4",
"v14.3.3",
"v14.3.2",
"v14.3.1",
"v14.3.0",
"v14.2.1",
"v14.2.0",
"v14.1.2",
"v14.1.1",
"v14.1.0",
"v14.0.0",
"v13.10.1",
"v13.10.0",
"v13.9.0",
"v13.8.6",
"v13.8.5",
"v13.8.4",
"v13.8.3",
"v13.8.2",
"v13.8.1",
"v13.8.0",
"v13.7.8",
"v13.7.7",
"v13.7.6",
"v13.7.5",
"v13.7.4",
"v13.7.3",
"v13.7.2",
"v13.7.1",
"v13.7.0",
"v13.6.2",
"v13.6.1",
"v13.6.0",
"v13.5.3",
"v13.5.2",
"v13.5.1",
"v13.5.0",
"v13.4.1",
"v13.4.0",
"v13.3.8",
"v13.3.7",
"v13.3.6",
"v13.3.5",
"v13.3.4",
"v13.3.3",
"v13.3.2",
"v13.3.1",
"v13.3.0",
"v13.2.2",
"v13.2.1",
"v13.2.0",
"v13.1.4",
"v13.1.3",
"v13.1.2",
"v13.1.1",
"v13.1.0",
"v13.0.7",
"v13.0.6",
"v13.0.5",
"v13.0.4",
"v13.0.3",
"v13.0.2",
"v13.0.1",
"v13.0.0",
"v12.10.3",
"v12.10.2",
"v12.10.1",
"v12.10.0",
"v12.9.2",
"v12.9.1",
"v12.9.0",
"v12.8.1",
"v12.8.0",
"v12.7.0",
"v12.6.0",
"v12.5.1",
"v12.5.0",
"v12.4.0",
"v12.3.0",
"v12.2.2",
"v12.2.1",
"v12.2.0",
"v12.1.7",
"v12.1.6",
"v12.1.5",
"v12.1.4",
"v12.1.3",
"v12.1.2",
"v12.1.1",
"v12.1.0",
"v12.0.1",
"v12.0.0",
"v11.2.0",
"v11.1.2",
"v11.1.1",
"v11.1.0",
"v11.0.6",
"v11.0.5",
"v11.0.4",
"v11.0.3",
"v11.0.2",
"v11.0.1",
"v11.0.0",
"v10.11.2",
"v10.11.1",
"v10.11.0",
"v10.10.4",
"v10.10.3",
"v10.10.2",
"v10.10.1",
"v10.10.0",
"v10.9.0",
"v10.8.1",
"v10.8.0",
"v10.7.0",
"v10.6.2",
"v10.6.3",
"v10.6.1",
"v10.6.0",
"v10.5.3",
"v10.5.2",
"v10.5.1",
"v10.5.0",
"v10.3.2",
"v10.4.0",
"v10.3.1",
"v10.3.0",
"v10.2.0",
"v10.1.1",
"v10.1.0",
"v10.0.7",
"v10.0.5",
"v10.0.6",
"v10.0.4",
"v10.0.3",
"v10.0.2",
"v10.0.1",
"v10.0.0",
"v9.20.3",
"v9.20.2",
"v9.20.1",
"v9.20.0",
"v9.19.2",
"v9.19.1",
"v9.19.0",
"v9.18.3",
"v9.18.2",
"v9.18.1",
"v9.18.0",
"v9.17.0",
"v9.16.0",
"v9.15.0",
"v9.13.0",
"v9.14.0",
"v9.13.1",
"v9.12.0",
"v9.11.0",
"v9.10.9",
"v9.10.8",
"v9.10.7",
"v9.10.6",
"v9.10.5",
"v9.10.4",
"v9.10.3",
"v9.10.2",
"v9.10.1",
"v9.10.0",
"v9.9.2",
"v9.9.1",
"v9.9.0",
"v9.8.4",
"v9.8.3",
"v9.8.2",
"v9.8.1",
"v9.8.0",
"v9.7.1",
"v9.3.2",
"v9.7.0",
"v9.6.1",
"v9.6.0",
"v9.5.1",
"v9.5.0",
"v9.4.0",
"v9.3.1",
"v9.3.0",
"v8.9.0",
"v9.2.1",
"v9.2.0",
"v9.1.10",
"v9.1.9",
"v9.1.7",
"v9.1.8",
"v9.1.6",
"v9.1.5",
"v9.1.4",
"v9.1.3",
"v9.1.2",
"v9.1.1",
"v9.1.0",
"v9.0.1",
"v9.0.0",
"v8.8.0",
"v8.7.6",
"v8.7.5",
"v8.7.4",
"v8.7.3",
"v8.7.2",
"v8.7.1",
"v8.7.0",
"v8.6.0",
"v8.5.0",
"v8.4.4",
"v8.4.3",
"v8.4.2",
"v8.4.1",
"v8.4.0",
"v8.3.2",
"v8.3.1",
"v8.3.0",
"v0.9.0",
"v0.8.5",
"v0.8.4",
"v0.8.3",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.0",
"v0.4.4",
"v0.4.3",
"v0.4.2",
"v0.4.1",
"v0.4.0",
"v0.3.1",
"v0.3.0",
"v0.2.16",
"v0.2.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.1",
"v0.11.0",
"v0.10.7",
"v0.10.6",
"v0.10.1",
"v0.10.0",
"v0.1.0",
"v0.0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-62410.json"
}
}
],
"modified": "2026-10-28T02:30:42.944978310Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/62xxx/CVE-2025-62410.json",
"https://github.com/capricorn86/happy-dom/security/advisories/GHSA-qpm2-6cq5-7pq5",
"https://nvd.nist.gov/vuln/detail/CVE-2025-62410",
"https://github.com/capricorn86/happy-dom/commit/f4bd4ebe3fe5abd2be2bcea1c07043c8b0b70eea"
],
"provider_metadata": {
"cwe_ids": [
"CWE-1321"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/62xxx/CVE-2025-62410.json"
}
},
"related_cves": [
{
"value": "CVE-2025-62410",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 510873,
"published_at": "2025-10-15T17:16:21.561+00:00"
}