Vulnerabilidad de 22 años en SQLite
Se ha revelado una vulnerabilidad de alta gravedad en la biblioteca de la base de datos SQLite, que se introdujo como parte de un cambio de código que data de octubre de 2000 y podría permitir a los atacantes bloquear o controlar programas.
Programado en C, SQLite es el motor de base de datos más utilizado, incluido de forma predeterminada en Android, iOS, Windows y macOS, así como en navegadores web populares como Google Chrome, Mozilla Firefox y Apple Safari.
"CVE-2022-35737 es explotable en sistemas de 64 bits, y la explotabilidad depende de cómo se compile el programa", dijo Andreas Kellas, investigador de Trail of Bits. "La ejecución de código arbitrario se confirma cuando la biblioteca se compila sin "stack canaries" o cookies de seguridad, y la denegación de servicio se confirma en todos los casos".
La vulnerabilidad descubierta por Trail of Bits se refiere a un error de desbordamiento de enteros que ocurre cuando las entradas de cadenas extremadamente grandes se pasan como parámetros a las implementaciones de SQLite de las funciones printf, que, a su vez, hacen uso de otra función para manejar el formato de cadenas ("sqlite3_str_vappendf").
Sin embargo, la explotación exitoso de la falla depende del requisito previo de que la cadena contenga los tipos de sustitución de formato %Q, %q o %w, lo que podría provocar un bloqueo del programa cuando los datos controlados por el usuario se escriben más allá de los límites del búfer asignado.
"Si la cadena de formato contiene el carácter especial '!' para habilitar el escaneo de caracteres Unicode, entonces es posible lograr la ejecución de código arbitrario en el peor de los casos, o hacer que el programa se cuelgue y se repita (casi) indefinidamente", explicó Kellas.
La vulnerabilidad también es un ejemplo de un escenario que alguna vez se consideró poco práctico hace décadas (asignar cadenas de 1 GB como entrada) que se volvió factible con la llegada de los sistemas informáticos de 64 bits.
"Es un error que puede no haber parecido un error en el momento en que se escribió (que se remonta a 2000 en el código fuente de SQLite) cuando los sistemas eran principalmente arquitecturas de 32 bits", dijo Kellas.
Fuente: THN
0 Comments:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!