Larry Cashdollar, chercheur en sécurité informatique pour le SIRT (Security Intelligence Response Team) d'Akamai, a découvert une vulnérabilité dans un plugin qui gère les téléchargements de fichiers sur les serveurs PHP. Cette faille, selon le chercheur, peut être utilisée par des pirates pour télécharger et exécuter des fichiers malveillants sur des serveurs, tels que des backdoors et les shells Web. Le plugin « jQuery File Upload » en question est connu sous le nom de Blueimp et écrit par le développeur allemand Sebastian Tschan. Cette faille est d'autant plus critique car Blueimp est le deuxième projet Linux le plus étoilé sur GitHub (forké plus de 7.800 fois), après le framework jQuery lui-même. Il est très populaire et a été intégré dans plusieurs projets tels que des CMS, des CRM, des solutions Intranet, des plugins WordPress, des add-ons Drupal, des composants Joomla, etc.
Voici comment le chercheur a pu identifier la faille : « J'ai fouillé le code source du plugin et je me suis retrouvé à scruter deux fichiers PHP dans le répertoire server / php. Les fichiers sont nommés upload.php et UploadHandler.php. Le fichier upload.php appelle le fichier principal UploadHandler.php où réside tout le code de téléchargement de fichier. J'ai également vu que tous les fichiers étaient chargés dans le répertoire files / à la racine du serveur Web. J'ai écrit un test rapide en ligne de commande avec curl et un simple fichier shell PHP a confirmé que je pouvais télécharger un shell Web et exécuter des commandes sur le serveur », a-t-il déclaré dans un billet de blog.
Selon le chercheur, cette vulnérabilité a été exploitée. Il a trouvé sur YouTube, plusieurs vidéos contenant des tutoriels sur la façon dont on pourrait exploiter la vulnérabilité du plugin jQuery File Upload pour prendre le contrôle des serveurs. L'une des vidéos trouvées par le chercheur date de 2015 et donc, il serait bien possible que cette faille soit bien connue et exploitée par les pirates depuis 2015. Cette faille a été identifiée sous le nom CVE-2018-9206 en début de ce mois et toutes les versions de jQuery File Upload antérieures à la version 9.22.1 en sont vulnérables.
Le chercheur en sécurité n'a pas manqué de signaler sa découverte à Blueimp qui a rapidement examiné le rapport pour mener sa petite enquête sur l'origine de la faille. Il s'est avéré que le problème n'était pas dans le code source du plugin mais plutôt dans un changement apporté au projet Apache Web Server depuis 2010. Ce changement a indirectement affecté le comportement attendu du plugin Blueimp sur les serveurs Apache. En effet, peu de temps avant que le plugin Blueimp ne soit lancé, la Fondation Apache a publié la version 2.3.9 du serveur HTTPD Apache.
Et cette version HTTPD d'apache dispose d'une option permettant aux administrateurs d'ignorer les paramètres de sécurité personnalisés effectués dans les dossiers individuels via le fichier .htaccess. Or, le plugin jQuery File Upload a été codé pour s'appuyer sur le fichier .htaccess personnalisé destiné à imposer des restrictions de sécurité à son dossier de téléchargement, oubliant que quelques jours avant, HTTPD d'Apache avait reçu un changement qui va à l'encontre du fonctionnement de sécurité de base de son plugin.
Cashdollar n'a-t-il pas raison quand il déclare qu' « Internet s'appuie sur de nombreux contrôles de sécurité tous les jours pour assurer la sécurité de nos systèmes, de nos données et de nos transactions. Si l'un de ces contrôles n'existe plus, cela peut mettre la sécurité en danger sans le savoir pour les utilisateurs et les développeurs de logiciels qui s'y fient ». Des mesures sont en train d'être prises pour corriger la faille. Le développeur du plugin a apporté à son code des modifications qui autorisent uniquement le téléchargement de fichiers de type image.
Cashdollar quand à lui, a enquêté sur la portée de cette vulnérabilité. Il a testé tous les forks GitHub qui sont dérivés du plugin original. De son test, il conclut que tous, ils sont vulnérables à cette vulnérabilité. Par conséquent, bien que le développeur du plugin ait apporté un changement à son code source, il faudra assez de temps pour que tous les projets qui utilisent ce plugin soient sécurisés.
Le code utilisé par Cashdollar pour ces tests est disponible sur GitHub
Source : Billet de blog
Et vous ?
Avez-vous utilisé ce plugin dans l'un de vos projets ? Quelles mesures avez-vous pris, ou pensez-vous prendre, pour sécuriser votre projet ?
Voir aussi
Une vulnérabilité zero-day critique dans Flash est activement exploitée par des hackers, Adobe prévoit un patch cette semaine
Une vulnérabilité 0Day dans Windows a été rendue publique parce que Microsoft n'a pas pu respecter le délai canonique de 120 jours
Patch Tuesday : Microsoft corrige la faille zero-day affectant ALPC dans l'édition de septembre au total 17 vulnérabilités critiques sont colmatées
Windows : Une nouvelle faille zero-day a été divulguée via Twitter, dont aucune solution n'est encore connue, selon un rapport
Une vulnérabilité 0-day dans un plugin jQuery permettrait de télécharger et d'exécuter du code malveillant sur des serveurs PHP
Et ce, depuis 2010
Une vulnérabilité 0-day dans un plugin jQuery permettrait de télécharger et d'exécuter du code malveillant sur des serveurs PHP
Et ce, depuis 2010
Le , par Bill Fassinou
Une erreur dans cette actualité ? Signalez-nous-la !