FICHE CVE

CVE-2026-33993

Publiée le 2026-03-27 · Dernière modification le 2026-10-26

🇫🇷 EN BREF

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.

CVSS 4.06.9 MOYENNE
Publiée2026-03-27
Dernière modification2026-10-26

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Prérequis d'attaqueAucun
Privilèges requisAucun
Interaction utilisateurAucune
Confidentialité (système vulnérable)Aucune
Intégrité (système vulnérable)Faible
Disponibilité (système vulnérable)Aucune
Confidentialité (système subséquent)Aucune
Intégrité (système subséquent)Aucune
Disponibilité (système subséquent)Aucune

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.