CVE-2026-33993
Publiée le 2026-03-27 · Dernière modification le 2026-10-26
Les applications JavaScript utilisant la bibliothèque Locutus pour émuler la fonction `unserialize()` de PHP sont concernées. Un attaquant peut envoyer via le réseau une charge utile sérialisée spécialement conçue pour injecter des propriétés dans des objets JavaScript, ce qui pourrait entraîner le plantage de l'application ou un comportement inattendu. Cette attaque est relativement facile à exécuter car elle ne nécessite ni authentification ni interaction de l'utilisateur.
DÉTAIL DU VECTEUR CVSS
RÉFÉRENCES
Description officielle du NVD (en anglais)
Locutus brings stdlibs of other programming languages to JavaScript for educational purposes. Prior to version 3.0.25, the `unserialize()` function in `locutus/php/var/unserialize` assigns deserialized keys to plain objects via bracket notation without filtering the `__proto__` key. When a PHP serialized payload contains `__proto__` as an array or object key, JavaScript's `__proto__` setter is invoked, replacing the deserialized object's prototype with attacker-controlled content. This enables property injection, for...in propagation of injected properties, and denial of service via built-in method override. This is distinct from the previously reported prototype pollution in `parse_str` (GHSA-f98m-q3hr-p5wq, GHSA-rxrv-835q-v5mh) — `unserialize` is a different function with no mitigation applied. Version 3.0.25 patches the issue.