Seguridad

Fallo crítico en SQLite podría afectar a miles de apps

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.

magellan

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

poc-sqlite

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

zdnet
https://www.zdnet.com/article/sqlite-bug-impacts-thousands-of-apps-including-all-chromium-based-browsers/#ftag=RSSbaffb68

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

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.