Categorías: Actualidad

Contaminación de clase: una variante de contaminación prototipo que afecta a Python

Un investigador de seguridad ha descubierto una grave vulnerabilidad de contaminación prototipo en el lenguaje de programación Python. La explotación de la falla conduce a fallas en la aplicación, lo que también puede generar otros impactos.

Variante de contaminación prototipo encontrada en Python

Un investigador de seguridad independiente, Abdulraheem Khaled, recientemente compartió detalles de un prototipo de vulnerabilidad de contaminación que afecta a Python.

La contaminación de prototipos es una vulnerabilidad común en el lenguaje de programación JavaScript, que permite a los atacantes entrometerse con los prototipos existentes. Un atacante puede inyectar valores en el prototipo de un objeto base («contaminar» el prototipo) para interrumpir otros objetos y, en última instancia, comprometer la aplicación. Dichos exploits pueden causar varios impactos, desde la denegación de servicio hasta la ejecución remota de código.

En su publicación de blog, Khaled explicó que la mayoría de las vulnerabilidades de contaminación de prototipos a menudo se informan para aplicaciones de JavaScript. Y otros lenguajes basados ​​en clases, como Python, parecen inmunes a tales vulnerabilidades.

Sin embargo, Khaled explicó cómo podía observar prototipos de variantes de contaminación en Python, donde la falla generalmente existe al contaminar el atributo modificable «_class_» en los objetos.

Como se indica en su publicación,

Desde la perspectiva de un atacante, estamos más interesados ​​en los atributos que podemos anular/anular para poder explotar esta vulnerabilidad en lugar de métodos mágicos. Como nuestra entrada siempre será tratada como datos (str, int, etc.) y no como código real para ser evaluado. Por lo tanto, si intentamos anular cualquiera de los métodos mágicos, hará que la aplicación se bloquee al intentar invocar ese método, porque no se pueden ejecutar datos como cadenas.

Brevemente, para demostrar la falla que llamó «contaminación de clase», el investigador creó una instancia de la clase Empleado, una clase vacía, y luego intentó contaminarla de tal manera que también contaminara la clase principal. Para esto, estableció el atributo __qualname__ en __class__ en una cadena y luego contaminó el atributo __base__. Eventualmente, esto le permitió contaminar la clase de empleado principal. Así es como un adversario puede contaminar cualquier clase principal.

El investigador explicó que Python impone ciertas restricciones en la modificación de los atributos de la clase de objeto, la clase principal de todas las clases. Por lo tanto, un atacante debe proceder en consecuencia, explotando las funciones de combinación inseguras, para lograr la contaminación de clases en Python.

Y luego ?

Hasta el momento, el investigador ha confirmado que no ha encontrado ningún exploit completo con un impacto que no sea DoS. No obstante, cree que un adversario puede aprovechar la falla para lograr otros resultados, como sobrescribir la clave secreta en la aplicación web Flask para firmar sesiones o secuestrar rutas.

Háganos saber sus pensamientos en los comentarios.

Fuente

WP Dev JaGonzalez

Hijo, esposo y padre de un hermoso niño. Amante de los animales, la tecnología, informática y programación. Si tienes alguna duda, inquietud, comentario o deseas comunicarte directamente conmigo, puedes enviarme un correo electrónico a admin@jagonzalez.org

Compartir
Publicado por
WP Dev JaGonzalez

Entradas recientes

iPhone Hackeado: Qué Hacer para Proteger tu Dispositivo y Asegurar tu Seguridad

¿Has notado aplicaciones desconocidas o un drenaje inesperado de la batería? Estos podrían ser indicios…

4 meses hace

Cómo Restablecer un iPhone a su Estado de Fábrica

Saber cómo Restablecer un iPhone a su Estado de Fábrica es clave para solucionar problemas…

4 meses hace

Motorola planea lanzar al menos dos nuevos teléfonos Moto G en septiembre

Motorola ha confirmado el lanzamiento de Moto G84 5G y Moto G54 5G en India,…

1 año hace

El equipo de WizardLM afirma que un modelo de IA de terceros les robó el trabajo

Recuerde WizardCoder, ¿el codificador de IA que cubrimos recientemente aquí en Windows Report? Nos jactamos…

1 año hace

Las fallas del complemento Jupiter X Core amenazaron a 172.000 sitios web con apropiaciones de cuentas

Los investigadores han descubierto numerosos fallos de seguridad en el complemento WordPress Jupiter X Core…

1 año hace

Consola portátil Xbox: aquí tienes todo lo que necesitas saber al respecto

Para solucionar problemas del sistema de PC con Windows, necesitará una herramienta dedicada Fortect es…

1 año hace