La faille Ghostcat concerne toutes les versions de Tomcat
26 février 2020
0 minutes de lectureApache Tomcat est une implémentation open source des technologies Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket. Tomcat est l’un des environnements de serveurs web HTTP Java les plus populaires. Il a été lancé en 1998.
Ghostcat est une vulnérabilité de gravité élevée dans Tomcat, découverte le 3 janvier par les chercheurs en sécurité de Chaitin Tech. Le 20 février, la China National Vulnerability Database (CNVD) a publié un avis de sécurité à son sujet sous le numéro CNVD-2020-10487.
La vulnérabilité a été découverte dans le protocole Apache JServ (AJP). Ce protocole binaire permet à un attaquant de lire ou d’inclure n’importe quel fichier dans les répertoires d’applications web de Tomcat.
Connecteur AJP
Le connecteur AJP gère les communications entre Tomcat et le monde extérieur. Par défaut, le connecteur AJP est activé dans Apache Tomcat sur le port 8009, pour les versions 6 à 9. Comme CVE-2020-1938 est une vulnérabilité de lecture ou d’inclusion de fichiers dans le connecteur AJP de Tomcat, toutes les versions qui n’incluent pas le correctif sont vulnérables.
Cette vulnérabilité permet à un attaquant de lire le contenu des fichiers de l’application web. Si l’application web autorise l’envoi de fichiers, l’attaquant peut également téléverser des fichiers sur le serveur, notamment des fichiers Java Server Pages (JSP) malveillants permettant l’exécution de code à distance sur le serveur.

Solution
Apache Tomcat a déjà publié des versions corrigées pour Tomcat 7, 8 et 9 :
Les chercheurs de Chaitin recommandent, si vous installez le correctif, d’ajouter également un secret adapté à la configuration de votre connecteur dans le fichier /conf/server.xml.
Si l’application d’un correctif n’est pas possible, les chercheurs de Chaitin recommandent d’autres moyens d’atténuer le problème.
Si vous n’utilisez pas le connecteur AJP, vous pouvez sans risque commenter ou supprimer sa déclaration dans le fichier /conf/server.xml.
Si vous utilisez le connecteur AJP et ne pouvez pas passer à une version corrigée, ajoutez un champ requiredSecret contenant un secret sûr et difficile à deviner.
Spring Boot
La dernière édition du rapport sur l’écosystème JVM indique que Spring Boot est le framework côté serveur le plus utilisé dans cet écosystème. Spring Boot utilise un serveur web intégré et, par défaut, celui-ci est une version intégrée de Tomcat. Il est possible que spring-boot-starter-web ait introduit une version vulnérable du package Apache Tomcat intégré dans votre système.
Modifié le 2 mars 2020
Il est utile de savoir que, par défaut, Spring Boot ne crée pas de connecteur AJP. Avec les paramètres par défaut, un attaquant ne peut donc pas exploiter cette vulnérabilité. Toutefois, Spring Boot peut être configuré autrement. Selon votre configuration, vérifiez si vous êtes vulnérable et prenez les mesures appropriées.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.
