CyberGlossary

Vulnerabilidades

Deserialización insegura

También conocido como: Deserialización no segura, Vulnerabilidad de deserialización de objetos

Definición

Vulnerabilidad en la que una aplicación deserializa datos no confiables, permitiendo al atacante instanciar objetos arbitrarios y, a menudo, lograr ejecución remota de código.

Cuando una aplicación convierte datos serializados (formatos binarios de Java/PHP/Python/.NET, YAML o JSON con metadatos de tipo) de nuevo en objetos, el deserializador puede invocar constructores, métodos mágicos o cadenas de gadgets. Con entradas no confiables, los atacantes construyen payloads que disparan comportamiento peligroso durante la deserialización: RCE, bypass de autenticación, escritura de ficheros o DoS. Cadenas de gadgets en librerías como Apache Commons Collections (Java), Pickle (Python) o BinaryFormatter de .NET han causado incidentes críticos. Defensas: evitar deserializar datos no confiables, usar formatos sin recuperación de tipos (JSON plano con esquemas explícitos), firmar los payloads, listas blancas de tipos deserializables y parchear los runtimes.

Ejemplos

  • App Java que deserializa una cookie de sesión con Commons Collections en el classpath, provocando RCE.
  • Servicio Python que ejecuta pickle.loads sobre bytes controlados por el usuario.

Términos relacionados