剣 KENSAI
Critique CVE-2025-24813 mars 2026 · 8 minutes de lecture

CVE-2025-24813 : Apache Tomcat PUT RCE partiel

Une vulnérabilité critique dans Apache Tomcat permet l'exécution de code à distance non authentifié à l'aide de seulement deux requêtes HTTP. L'attaque exploite la fonctionnalité PUT partielle de Tomcat pour télécharger un objet Java sérialisé, puis déclencher la désérialisation via une requête GET. CVSS 9.8. Affecte Tomcat 9, 10 et 11 avec la configuration par défaut.


9.8
CRITIQUE
AttributValeur
Identifiant CVECVE-2025-24813
Vecteur CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-502 : Désérialisation des données non fiables
Publié10 mars 2025
ExploitationActif – PoC public publié dans les 30 heures

Qu’est-ce que CVE-2025-24813 ?

Apache Tomcat prend en charge le « PUT partiel » — une fonctionnalité HTTP permettant aux clients de télécharger des fichiers volumineux en segments à l'aide de Gamme de contenu en-têtes. Tomcat stocke ces téléchargements partiels sous forme de fichiers temporaires dans un répertoire de travail. La vulnérabilité provient de deux failles dans cette implémentation :

  1. Le nom du fichier temporaire est dérivé du chemin de l'URL de téléchargement, qui est partiellement contrôlé par l'attaquant.
  2. Si le mécanisme de persistance de session Java est activé (stockage des sessions dans des fichiers), Tomcat peut désérialiser n'importe quel fichier du répertoire de travail possédant un .session extension

Un attaquant peut combiner ces failles pour télécharger un objet Java sérialisé malveillant déguisé en téléchargement partiel, puis déclencher sa désérialisation en demandant une URL que Tomcat interprète comme une recherche de session.

🚨 PoC public dans les 30 heures

Un exploit fonctionnel a été publié sur GitHub environ 30 heures après la divulgation de CVE-2025-24813. L’attaque à deux requêtes est extrêmement simple à automatiser, et des campagnes d’exploitation massives ont été observées en quelques jours. Tout serveur Tomcat connecté à Internet et non corrigé avec une configuration par défaut doit être considéré comme compromis.

Versions concernées

Version TomcatGamme concernéeVersion fixe
Apache Tomcat 11.x11.0.0-M1 à 11.0.211.0.3+
Apache Tomcat 10.x10.1.0-M1 à 10.1.3410.1.35+
Apache Tomcat 9.x9.0.0.M1 à 9.0.989.0.99+

Conditions préalables au RCE : Les deux conditions doivent être vraies :

Remarque sur les prérequis : Certaines sources ont initialement indiqué que les conditions préalables étaient strictes. Cependant, une analyse réelle a montré que certaines configurations Tomcat courantes (y compris certaines distributions de serveurs d'applications) remplissent les deux conditions. Correctif quel que soit : le score CVSS reflète les pires conditions.

L'attaque à deux demandes

# Requête 1 : Télécharger un objet sérialisé malveillant en tant que PUT partiel
METTRE /.xxxxx HTTP/1.1
Hébergeur : target.com
Type de contenu : application/flux d'octets
Plage de contenu : octets 0-1233/1234
Longueur du contenu : 1234

[charge utile de la chaîne de gadgets Java sérialisée — par exemple, Commons Collections]

# Tomcat le stocke sous forme de fichier temporaire dans le répertoire de travail
# Nom de fichier dérivé de l'URL : .xxxxx → stocké sous forme de téléchargement partiel

# Requête 2 : Déclencher la désérialisation via la recherche de session
OBTENIR /.xxxxx HTTP/1.1
Hébergeur : target.com
Cookie : JSESSIONID=.xxxxx

# Tomcat recherche le fichier de session correspondant à l'ID de session
# Trouve le fichier de l'attaquant → le désérialise → RCE

Pourquoi Tomcat est une cible de grande valeur

Apache Tomcat est l'un des serveurs d'applications Java les plus largement déployés au monde, utilisé dans :

Un RCE dans Tomcat signifie souvent l'accès aux informations d'identification de la base de données, aux API internes et aux données commerciales sensibles stockées par les applications qui y sont exécutées.

Détection

# Vérifier la version de Tomcat
/opt/tomcat/bin/version.sh
# ou vérifiez le manifeste catalina.jar
unzip -p /opt/tomcat/lib/catalina.jar META-INF/MANIFEST.MF | grep version d'implémentation

# Vérifiez les téléchargements PUT partiels suspects dans les journaux d'accès
grep 'PUT' /opt/tomcat/logs/localhost_access_log.* | grep -v '200\|201\|204'
grep 'PUT.*Content-Range' /opt/tomcat/logs/localhost_access_log.*

# Vérifiez les fichiers inhabituels dans le répertoire de travail Tomcat
find /opt/tomcat/work -name "*.session" -newer /opt/tomcat/conf/server.xml
trouver /opt/tomcat/work -type f -newer /opt/tomcat/conf/server.xml

# Vérifiez si l'écriture du servlet par défaut est activée
grep -r "lecture seule" /opt/tomcat/conf/web.xml /opt/tomcat/webapps/

Atténuation

  1. Corrigez immédiatement : Mise à niveau vers Tomcat 9.0.99+, 10.1.35+ ou 11.0.3+
  2. Désactivez l'écriture du servlet par défaut (si cela n'est pas nécessaire) :
    <servlet>
      <servlet-name>par défaut</servlet-name>
      <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
      <param-init>
        <param-name>lecture seule</param-name>
        <param-value>true</param-value> <!-- Assurez-vous que cela est vrai -->
      </init-param>
    </servlet>
  3. Désactivez la persistance de session basée sur les fichiers : Passer à la persistance de session en mémoire ou en base de données
  4. Déployer les règles WAF : Bloquez les requêtes HTTP PUT avec Gamme de contenu en-têtes si non nécessaires
  5. Utilisez des filtres de désérialisation Java : Configurer les filtres de sérialisation Java 9+ pour restreindre les classes désérialisables

Capacité de détection KENSAI

Trouvez vos serveurs Tomcat exposés avant les attaquants

KENSAI identifie chaque instance Apache Tomcat dans votre environnement et teste CVE-2025-24813 et d'autres vulnérabilités critiques du serveur d'applications Java.

Rechercher les vulnérabilités Tomcat →

Articles connexes

FortiClient EMS sous attaque active, la Commission européenne victime d'une violation CVE-2025-21418 : élévation des privilèges Windows AFD.sys Zero-Day Redirection...