El grupo Blade de Tencent ha descubierto un fallo de seguridad en SQLite, que permite realizar RCE, o provocar rupturas inesperadas del programa que utiliza este servicio.
SQLite es un gestor de base de datos relacional y multiplataforma que encontramos embebido en multitud de aplicaciones y sistemas. Lo que diferencia a SQLite de otros SGBD es que no es un proceso independiente con el que el programa principal se comunica, sino que se lanza con el programa pasando a ser parte integral del mismo. Por eso esta vulnerabilidad estará presente durante largo tiempo en diferentes sistemas y aplicaciones, ya que es necesario actualizar la librería utilizada dentro de la aplicación.
Los investigadores de Tencent han descubierto la posibilidad de encontrar fugas de información del programa que se está ejecutando, detener su ejecución o incluso conseguir ejecutar comandos de forma remota simplemente accediendo a una página web malintencionada, si se da el caso en el que el navegador soporte SQLite junto con la ya obsoleta API WebSQL, que es capaz de traducir el código del exploit a sintaxis SQL. Firefox y Edge no dan soporte a WebSQL, pero otros navegadores basados en el proyecto open-source de Chromium como motor del navegador sí, como es el caso de Google Chrome, Opera, Vivaldi, etc.
Pero, aún siendo los navegadores el principal objetivo de ataque, El equipo Blade afirmó en este comunicado que “ha sido posible explotar ‘Google Home’ con esta vulnerabilidad y actualmente no tienen pensado revelar el código utilizado para explotarla”. Mostrando así que el fallo no solo afecta a algunos navegadores, sino que todos los sistemas que utilicen SQLite que no estén actualizados y cumplan las características necesarias son vulnerables.
El fallo fue reportado al equipo de SQLite y actualizado en la versión SQLite 3.26.0 al igual que se reportó a Chromium y se ha limitado el uso de WebSQL en la nueva versión 71.
En esta prueba de concepto se bloquea el proceso del rendizador utilizando ‘Magellan’.
Claro que para que cause efecto es necesario utilizar el navegador adecuado, por ejemplo Google Chrome en una versión menor que la 71. En el código podemos ver que se utiliza el motor de búsqueda de texto completo (full-text) FTS3, y que se están alterando los datos de las ‘shadow tables’ manualmente. Por otra parte, la nueva actualización de SQLite da la opción de utilizar estas mismas tablas con permiso ‘read-only’, lo que nos hace pensar en que el fallo nace en los permisos de acceso a las ‘shadow tables’.
Fuentes
Tencent
https://blade.tencent.com/magellan/index_en.html
Github
https://github.com/zhuowei/worthdoingbadly.com/blob/master/_posts/2018-12-14-sqlitebug.html
SQLite Doc
https://www.sqlite.org/fts3.html#*shadowtab
Por Víctor Reyes
Dejar un comentario