07/11/2024

Actu CybersécuritéLogiciel - OS

SQLite : une faille de sécurité vieille de 22 ans a été corrigée en juillet 2022 !

Une faille de sécurité dans SQLite vieille de 22 ans vient d'être mise en lumière ! Associée à une sévérité élevée, cette vulnérabilité permet à un attaquant de faire planter le programme ou d'exécuter du code. Faisons le point.

Pour rappel, SQLite est une bibliothèque qui intègre un moteur de base de données accessible via le langage SQL, comme MySQL, par exemple. Toutefois, SQLite est beaucoup plus léger et rapide à mettre en place : il est utilisé par certaines applications que l'on installe en local sur son smartphone, son ordinateur, etc... Par exemple, Mozilla Firefox dispose de sa propre base SQLite ! On peut aussi l'utiliser sur une application Web, si elle est peu sollicitée.

Intéressons-nous à la vulnérabilité...

C'est une modification dans le code source effectuée en octobre 2000 qui a introduit la faille de sécurité dans SQLite ! Associée à la référence CVE-2022-35737 et associée à un score CVSSv3 de 7,5 sur 10, cette faille de sécurité affecte toutes les versions de SQLite 1.0.12 à 3.39.1. La bonne nouvelle, c'est qu'elle a été corrigée le 21 juillet 2022 lorsque la version 3.39.2 est sortie !

Découverte par Trail of Bits, cette vulnérabilité est un bug de type "integer overflow" qui se produit si une chaîne de caractères beaucoup trop grande est passée en paramètre. Dans le cas de SQLite, ce sont les fonctions printf qui sont concernées et la chaîne doit contenir un format de substitution spécifique (%Q, %q, ou %w) pour faire planter l'application.

Le chercheur en sécurité Andreas Kellas de chez Trail of Bits s'est exprimé au sujet de cette vulnérabilité dans un compte-rendu technique : "La CVE-2022-35737 est exploitable sur les systèmes 64 bits, et l'exploitabilité dépend de la façon dont le programme est compilé". Dans tous les cas, le crash du programme est réalisable si vous utilisez une version vulnérable (un déni de service, donc), tandis que pour l'exécution de code, cela dépend du type de compilation.

Il est important d'insister sur le fait que cette vulnérabilité affecte les systèmes 64 bits, car ce sont eux qui sont capables d'envoyer une chaîne de caractères suffisamment importante pour faire planter l'application, car il n'y a plus cette limite à 4 Go de RAM sur la machine. C'est bien précisé dans le rapport : "Lorsque ce code a été écrit pour la première fois, la plupart des processeurs avaient des registres de 32 bits et 4 Go de mémoire adressable, de sorte que l'allocation de chaînes de 1 Go en entrée était irréaliste. Maintenant que les processeurs 64 bits sont courants, l'allocation de chaînes de cette taille est possible et les conditions de vulnérabilité sont accessibles."

Si vous utilisez SQLite pour vos propres développements, veillez à utiliser la version 3.39.2 ou supérieure pour corriger cette vulnérabilité.

Source

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.