Vulnérabilité dans Apache Tomcat, permettant l'injection de code JSP et l'accÚs aux fichiers des applications web

Des chercheurs de la sociĂ©tĂ© chinoise Chaitin Tech ont identifiĂ© CVE-2020-10174 (CVE-2020-1938) dans Apache Tomcat, une implĂ©mentation open source des technologies Java Servlet, JavaServer Pages, Java Expression Language et Java WebSocket. La vulnĂ©rabilitĂ© a Ă©tĂ© nommĂ©e Ghostcat et classĂ©e avec un niveau de dangerositĂ© critique (9.8 CVSS). Le problĂšme permet, par dĂ©faut, de lire le contenu de n'importe quel fichier du rĂ©pertoire de l'application web en envoyant une requĂȘte sur le port rĂ©seau 8009, y compris les fichiers de configuration et le code source de l'application.

La vulnĂ©rabilitĂ© permet Ă©galement d'importer d'autres fichiers dans le code de l'application, ce qui permet l'exĂ©cution de code sur le serveur si l'application autorise le tĂ©lĂ©chargement de fichiers sur le serveur (par exemple, un attaquant peut tĂ©lĂ©charger un script JSP dĂ©guisĂ© en image via un formulaire de tĂ©lĂ©chargement). L'attaque peut ĂȘtre rĂ©alisĂ©e si une requĂȘte peut ĂȘtre envoyĂ©e au port rĂ©seau avec un traitement AJP. Selon les donnĂ©es prĂ©liminaires, il y a dans le rĂ©seau trouvĂ© plus de 1,2 million d'hĂŽtes acceptant des requĂȘtes via le protocole AJP.

La vulnérabilité est présente dans le protocole AJP, et n'est pas causée par une erreur d'implémentation. En plus d'accepter des connexions HTTP (port 8080), Apache Tomcat autorise par défaut l'accÚs à l'application web via le protocole AJP (Apache Jserv Protocol, port 8009), qui est un équivalent binaire optimisé pour une performance supérieure à HTTP, généralement utilisé lors de la création de clusters de serveurs Tomcat ou pour accélérer l'interaction avec Tomcat sur un proxy inverse ou un équilibreur de charge.

AJP offre une fonctionnalitĂ© intĂ©grĂ©e pour accĂ©der aux fichiers sur le serveur, qui peut Ă©galement ĂȘtre utilisĂ©e pour rĂ©cupĂ©rer des fichiers qui ne devraient pas ĂȘtre divulguĂ©s. Il est supposĂ© que l'accĂšs Ă  AJP est ouvert uniquement aux serveurs de confiance, mais en rĂ©alitĂ©, dans la configuration par dĂ©faut de Tomcat, le traitement Ă©tait exĂ©cutĂ© sur toutes les interfaces rĂ©seau et les requĂȘtes Ă©taient acceptĂ©es sans authentification. L'accĂšs est possible Ă  n'importe quel fichier de l'application web, y compris le contenu de WEB-INF, META-INF et d'autres rĂ©pertoires, accessibles via l'appel ServletContext.getResourceAsStream(). AJP permet Ă©galement d'utiliser n'importe quel fichier dans les rĂ©pertoires accessibles Ă  l'application web comme un script JSP.

Le problĂšme apparaĂźt Ă  partir de la branche Tomcat 6.x publiĂ©e il y a 13 ans. En plus de Tomcat lui-mĂȘme, le problĂšme touche et les produits qui l'utilisent, tels que Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP), ainsi que des applications web autonomes utilisant Spring Boot. Une vulnĂ©rabilitĂ© similaire (CVE-2020-1745) est prĂ©sent dans le serveur web Undertow, utilisĂ© dans le serveur d'applications Wildfly. Dans JBoss et Wildfly, le protocole AJP est activĂ© par dĂ©faut uniquement dans les profils standalone-full-ha.xml, standalone-ha.xml et ha/full-ha dans domain.xml. Dans Spring Boot, le support AJP est dĂ©sactivĂ© par dĂ©faut. Actuellement, plus d'une dizaine d'exemples exploitables ont Ă©tĂ© prĂ©parĂ©s par diffĂ©rents groupes (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

La vulnérabilité a été corrigée dans les versions de Tomcat 9.0.31, 8.5.51 et 7.0.100 (soutien de la branche 6.x interrompu). Pour suivre l'apparition de la mise à jour dans les distributions, vous pouvez consulter ces pages : Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Comme mesure de protection, vous pouvez désactiver le service Tomcat AJP Connector (lier le socket d'écoute à localhost ou commenter la ligne avec Connector port = «8009»), si ce n'est pas nécessaire, ou configurer l'accÚs authentifié à l'aide des attributs «secret» et «address», si le service est utilisé pour interagir avec d'autres serveurs et des proxies basés sur mod_jk et mod_proxy_ajp (mod_cluster ne prend pas en charge l'authentification).

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster