A8: 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
Una cookie no confiable se reconstruye como objeto nativo; la deserialización puede activar comportamiento antes de validar el objeto.
Ejemplo
Vulnerable · Pseudocódigoblob = 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
- 2017 · A8: Insecure Deserialization Se amplía en una categoría nueva
- 2021 · A08: Software and Data Integrity Failures Nueva y ampliada desde Insecure Deserialization
- 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.