CWE-95
Neutralización Incorrecta de Directivas en Código Evaluado Dinámicamente ('Eval Injection')
Acerca de
El producto recibe entrada de un componente ascendente, pero no neutraliza o neutraliza incorrectamente la sintaxis de código antes de usar la entrada en una llamada de evaluación dinámica (por ejemplo, "eval").
Consecuencias comunes
- Confidencialidad → Leer Archivos o Directorios, Leer Datos de la Aplicación
- Control de Acceso → Eludir Mecanismo de Protección
- Control de Acceso → Obtener Privilegios o Asumir Identidad
- Integridad, Confidencialidad, Disponibilidad, Otro → Ejecutar Código o Comandos No Autorizados
- No Repudio → Ocultar Actividades
Mitigaciones
- Arquitectura y Diseño, Implementación: Si es posible, refactorice su código para que no necesite usar eval() en absoluto.
- Implementación: Asuma que toda entrada es maliciosa. Utilice una estrategia de validación de entrada de tipo "aceptar lo conocido como bueno", es decir, use una lista de entradas aceptables que se ajusten estrictamente a las especificaciones. Rechace cualquier entrada que no se ajuste estrictamente a las especificaciones, o transfórmela en algo que sí lo haga. Al realizar la validación de entrada,
- Implementación: Las entradas deben ser decodificadas y canonicalizadas a la representación interna actual de la aplicación antes de ser validadas (CWE-180, CWE-181). Asegúrese de que su aplicación no decodifique inadvertidamente la misma entrada dos veces (CWE-174). Tales errores podrían usarse para eludir esquemas de lista de permitidos introduciendo entradas peligrosas después de que hayan sido
- Implementación: Para programas de Python, se recomienda con frecuencia usar la función ast.literal_eval() en lugar de eval, ya que está diseñada intencionalmente para evitar la ejecución de código. Sin embargo, un adversario aún podría provocar un consumo excesivo de memoria o de pila mediante estructuras profundamente anidadas [REF-1372], por lo que la documentación de Python desaconseja el uso d
CVEs con esta debilidad
Preguntas frecuentes
¿Qué es CWE-95?
El producto recibe entrada de un componente ascendente, pero no neutraliza o neutraliza incorrectamente la sintaxis de código antes de usar la entrada en una llamada de evaluación dinámica (por ejemplo, "eval").
¿Qué probabilidad hay de que CWE-95 sea explotada?
MITRE califica la probabilidad de explotación de CWE-95 como medium.
¿Qué plataformas afecta CWE-95?
CWE-95 se ha observado en: Java, JavaScript, Python, Perl, PHP, Ruby, Interpreted, AI/ML.
¿Cuántas CVE rastrea Rainforest para CWE-95?
Rainforest Labs rastrea actualmente 3 CVE publicadas asociadas a CWE-95. Están listadas en esta página.
Potencia tu estrategia de seguridad con Rainforest
Descubre vulnerabilidades a tiempo, prioriza amenazas críticas y protege lo que realmente importa. Rainforest simplifica tus operaciones de seguridad, ahorrando tiempo y reduciendo costos, para que te enfoques en lo que impulsa tu negocio.
