Vulnerabilidad de 22 años informada en la biblioteca de base de datos SQLite ampliamente utilizada


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.

rastreado como CVE-2022-35737 (puntuación CVSS: 7.5), el problema de 22 años afecta a las versiones de SQLite 1.0.12 hasta 3.39.1, y se ha abordado en versión 3.39.2 publicado el 21 de julio de 2022.

«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. dijo en un artículo técnico publicado hoy.

«La ejecución de código arbitrario se confirma cuando la biblioteca se compila sin canarios de pila, pero no se confirma cuando hay canarios de pila presentes, y la denegación de servicio se confirma en todos los casos».

Vulnerabilidad de la base de datos SQLite

Programado en C, SQLite es el más ampliamente usado motor de base de datosincluido de forma predeterminada en Android, iOS, Windows y macOS, así como en navegadores web populares como Google Chrome, Mozilla Firefox y Apple Safari.

La vulnerabilidad descubierta por Trail of Bits se refiere a un error de desbordamiento de enteros que ocurre cuando se pasan entradas de cadena extremadamente grandes como parámetros a las implementaciones de SQLite del funciones de impresiónque, a su vez, hace uso de otra función para manejar el formato de cadena («sqlite3_str_vappendf«).

La seguridad cibernética

Sin embargo, un armamento exitoso de la falla se basa en el requisito previo de que la cadena contenga los tipos de sustitución de formato %Q, %q o %wlo que puede provocar un bloqueo del programa cuando los datos controlados por el usuario se escriben más allá de los límites de un búfer asignado por la pila.

«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 informática de 64 bits sistemas

«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.



ttn-es-57