nodeca/js-yaml · Security
js-yaml has prototype pollution in merge (<<)
- GHSA ID
- GHSA-mh29-5h37-fv8m
- CVE ID
- CVE-2025-64718
- Severity
- medium
- Published
- Updated
- CVSS
- 5.3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
- CVSS v3
- 5.3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Description
Impact
In js-yaml 4.1.0, 4.0.0, and 3.14.1 and below, it's possible for an attacker to modify the prototype of the result of a parsed yaml document via prototype pollution (__proto__). All users who parse untrusted yaml documents may be impacted.
Patches
Problem is patched in js-yaml 4.1.1 and 3.14.2.
Workarounds
You can protect against this kind of attack on the server by using node --disable-proto=delete or deno (in Deno, pollution protection is on by default).
References
https://cheatsheetseries.owasp.org/cheatsheets/Prototype_Pollution_Prevention_Cheat_Sheet.html
CWEs
- CWE-1321 · Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
References
- https://github.com/nodeca/js-yaml/security/advisories/GHSA-mh29-5h37-fv8m ↗
- https://nvd.nist.gov/vuln/detail/CVE-2025-64718 ↗
- https://github.com/nodeca/js-yaml/commit/383665ff4248ec2192d1274e934462bb30426879 ↗
- https://github.com/nodeca/js-yaml/commit/5278870a17454fe8621dbd8c445c412529525266 ↗
- https://github.com/nodeca/js-yaml/issues/730#issuecomment-3549635876 ↗
- https://github.com/advisories/GHSA-mh29-5h37-fv8m ↗