CVE-2026-33993

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:locutus:locutus:*:*:*:*:*:node.js:*:*

History

26 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) Locutus trae las bibliotecas estándar de otros lenguajes de programación a JavaScript con fines educativos. Antes de la versión 3.0.25, la función ’unserialize()’ en ’locutus/php/var/unserialize’ asigna claves deserializadas a objetos planos mediante notación de corchetes sin filtrar la clave ’__proto__’. Cuando una carga útil serializada de PHP contiene ’__proto__’ como clave de array u objeto, se invoca el ’setter’ de ’__proto__’ de JavaScript, reemplazando el prototipo del objeto deserializado con contenido controlado por el atacante. Esto permite la inyección de propiedades, la propagación ’for...in’ de propiedades inyectadas y la denegación de servicio mediante la anulación de métodos incorporados. Esto es distinto de la contaminación de prototipos previamente reportada en ’parse_str’ (GHSA-f98m-q3hr-p5wq, GHSA-rxrv-835q-v5mh) - ’unserialize’ es una función diferente sin mitigación aplicada. La versión 3.0.25 corrige el problema.

Information

Published : 2026-03-27 23:17

Updated : 2026-10-26 21:10


NVD link : CVE-2026-33993

Mitre link : CVE-2026-33993

CVE.ORG link : CVE-2026-33993


JSON object : View

Products Affected

locutus

  • locutus
CWE
CWE-1321

Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')