OWASP Evolution

Insecure DeserializationA8: Insecure Deserialization · 2017

Objetos serializados no confiables pueden alterar lógica, ejecutar código o abusar de tipos peligrosos durante la reconstrucción del objeto.

Resumen

Objetos serializados no confiables pueden alterar lógica, ejecutar código o abusar de tipos peligrosos durante la reconstrucción del objeto.

Cómo funciona el ataque

A8 · Cómo funciona el ataqueUna cookie no confiable se reconstruye como objeto nativo; la deserialización puede activar comportamiento antes de validar el objeto.Cookiepickle.loadsObjeto nativoComportamientoAntes de validar

Una cookie no confiable se reconstruye como objeto nativo; la deserialización puede activar comportamiento antes de validar el objeto.

Ejemplo

Vulnerable · Pseudocódigo
blob = request.cookies["state"]
state = pickle.loads(decode(blob))

Corrección: Usar JSON con esquema y validar los valores; evitar objetos nativos de fuentes no confiables.

Prevención

  • Evitar deserializar objetos nativos provenientes de fuentes no confiables.
  • Usar formatos simples con esquemas y listas permitidas de tipos.
  • Verificar integridad y aislar el procesamiento de datos serializados.

Linaje

  1. 2017 · A8: Insecure Deserialization Se amplía en una categoría nueva
  2. 2021 · A08: Software and Data Integrity Failures Nueva y ampliada desde Insecure Deserialization
  3. 2025 · A08: Software or Data Integrity Failures Continúa en el puesto 8
  • 2017:A8 → 2021:A08: Insecure Deserialization pasa a una categoría de integridad más amplia.
  • 2021:A08 → 2025:A08: La categoría continúa en el puesto 8 con un ajuste menor de nombre.

Fuentes

Invítame un café

OWASP Evolution

Ediciones
Continúa / se mueveContinúa Se renombraRenombra Se fusiona / amplíaFusiona