Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
tomcat85-check — CVE-2025-55752 CVE-2025-55754 CVE-2025-48988 CVE-2025-52520 CVE-2025-53506 CVE-2025-61795 CVE-2025-66614 : Tomcat 8.5 est en fin de vie (EOL), version finale 8.5.100. Apache déclare une par une que « 8.5 est également concerné » pour 14 CVE de 2025, dont 10 introuvables dans la NVD pour 8.5.100. Jar unique hors ligne, lisez conf/ pour déterminer lesquelles vous concernent réellement. | Kitploit
Outils/GitHubGitHub/xiaoqimikko/tomcat85-check
Sécurité de l'Infrastructure CloudScanners de VulnérabilitésAnalyse des VulnérabilitésAudit de ConfigurationSécurité WebDevSecOps
GitHubxiaoqimikko/tomcat85-check

tomcat85-check

Voir le dépôt
il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

CVE-2025-55752 CVE-2025-55754 CVE-2025-48988 CVE-2025-52520 CVE-2025-53506 CVE-2025-61795 CVE-2025-66614 : Tomcat 8.5 est en fin de vie (EOL), version finale 8.5.100. Apache déclare une par une que « 8.5 est également concerné » pour 14 CVE de 2025, dont 10 introuvables dans la NVD pour 8.5.100. Jar unique hors ligne, lisez conf/ pour déterminer lesquelles vous concernent réellement.

Partager

tomcat85-check

Vous tournez encore sur Tomcat 8.5 ? Cet outil vous dit quelles CVE de 2025 vous touchent réellement — parce que sur cette question, vous n'obtiendrez pas de réponse complète ni sur les pages officielles, ni sur NVD, ni chez les scanners.

Jar unique zéro dépendance, fonctionne hors ligne, sans connexion réseau, sans rien envoyer.


Ce qu'il résout

Tomcat 8.5 est en EOL depuis le 2024-03-31, la dernière version est 8.5.100 (publiée le 2024-03-19). Depuis, Apache continue de déclarer dans les enregistrements CVE « 8.5 est également concerné », et c'est précisément l'endroit que le moins de monde consulte.

La page de sécurité 9.x officielle d'Apache liste 17 entrées CVE-2025-*, dont 14 indiquent textuellement :

The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.x though 8.5.100

(texte original — sur les 14, 8 écrivent through comme though ; la borne inférieure est le plus souvent 8.5.0, mais aussi 8.5.6 / / / )

8.5.44
8.5.60
8.5.90

Ces 14 entrées, voici ce que vous voyez selon les trois endroits où vous allez chercher :

Là où vous allez chercherCe que vous voyez
Page de sécurité 8.5 officielle d'Apache (security-8.html)Zéro entrée pour 2025 — la page s'arrête à 2024-02-19 Fixed in Apache Tomcat 8.5.99
NVDEn interrogeant 8.5.100 par cpe, vous n'obtenez que 4 entrées sur les 14 ; pour les 10 autres, la configuration cpe ne contient pas 8.5
GitHub advisoryLes 14 sont là, mais côté 8.5, first_patched_version est null partout

Le seul endroit qui raconte toute l'histoire, c'est l'enregistrement original soumis par Apache en tant que CNA sur CVE.org — c'est-à-dire la couche que le moins de monde va fouiller. Ce que fait cet outil, c'est confronter les informations de cette couche à la version réellement installée sur votre machine.

🔴 Cet outil expose les différences entre les sources de données, pas le comportement d'un produit. « Votre scanner va-t-il remonter ces 10 entrées ? » dépend de la base qu'il lit et de la façon dont il fusionne — cela n'a pas été testé, donc rien n'est écrit ici.


L'autre moitié tout aussi importante : sur les 14, seulement 2 touchent la configuration par défaut

Ne signaler que par numéro de version reviendrait à présenter les 12 entrées « valables uniquement avec une configuration spécifique » comme « vous êtes touché » — c'est vous envoyer faire une tâche inutile.

C'est pourquoi, lorsqu'un répertoire d'installation est fourni, l'outil lit tous les XML sous conf/ (y compris conf/Catalina/<host>/), retire les blocs de commentaires, puis cherche les marqueurs de condition déclenchante. Retirer les commentaires n'est pas une option : dans le server.xml officiel, la recherche textuelle de UpgradeProtocol donne 1 occurrence, mais 0 après retrait des commentaires — le passage entier est commenté.

Sur une installation nue officielle 8.5.100, le résultat est :

root@kitploit:~
2 entrées affectées par défaut · 0 entrée confirmée par configuration · 11 entrées à confirmer manuellement · 1 entrée non applicable
dont 10 introuvables dans la configuration cpe de NVD pour 8.5

Une fois HTTP/2, RewriteValve et CGIServlet activés dans la même configuration, les « confirmées par configuration » passent à 5.


Utilisation

root@kitploit:~
java -jar tomcat85-check.jar <répertoire d'installation | jar | war> ...

  --all     liste aussi les entrées « version hors intervalle »
  --utf8    à ajouter si le chinois s'affiche mal sur la console Windows
root@kitploit:~
# Tomcat déployé décompressé — passez le niveau contenant conf/, vous économiserez une grosse partie du travail manuel
java -jar tomcat85-check.jar /opt/tomcat

# Un simple jar / war suffit aussi pour scanner
java -jar tomcat85-check.jar /opt/app/lib/catalina.jar

Comment le numéro de version est reconnu sur un déploiement décompressé

Les jars sous lib/ ne portent aucun numéro de version dans leur nom de fichier (c'est catalina.jar, pas catalina-8.5.100.jar). Les outils qui ne se fient qu'au nom de fichier ne reconnaissent rien sur ce type de déploiement — or « rien détecté » ressemble exactement à « vous êtes en sécurité ».

Cet outil détermine la version dans cet ordre :

  1. server.number dans catalina.jar!/org/apache/catalina/util/ServerInfo.properties — c'est ce que rapporte version.sh de Tomcat lui-même
  2. Implementation-Version dans META-INF/MANIFEST.MF
  3. Le nom de fichier (uniquement pour les formes embarquées type Spring Boot)

Quand les deux sources ne concordent pas (ServerInfo.properties peut être écrasé, souvent pour masquer la version), les deux sont rapportées, sans choisir à votre place.


Trois lignes rouges à ne pas franchir

Un : on peut confirmer qu'une chose est activée, pas qu'elle ne l'est pas. Quand le rapport dit « introuvable », cela signifie « introuvable dans les fichiers que j'ai examinés », pas « vous ne l'avez pas activé ». La configuration peut se trouver là où l'outil ne regarde pas : WEB-INF/web.xml dans un war, CATALINA_BASE externe, paramètres de démarrage. C'est pourquoi il n'existe pas de niveau « non affecté » — tout ce qui est introuvable tombe dans à confirmer manuellement.

Deux : même quand on trouve, ce n'est pas toujours exactement ça. Par exemple, dans le server.xml officiel par défaut, AprLifecycleListener est activé par défaut, mais il ne fait que tenter de charger la bibliothèque native — si la bibliothèque n'existe pas, le connecteur APR ne s'active pas. C'est donc un « marqueur faible » : une correspondance ne rapporte que « possible », pas « confirmé ».

Trois : il n'existe aucune version 8.5 vers laquelle migrer. first_patched_version des 14 entrées est null côté 8.5. Ce n'est pas « pas encore corrigé », c'est « ne sera plus corrigé pour 8.5 ». La seule issue est de changer de ligne (9.0 / 10.1 / 11.0). Cet outil répond « de quoi êtes-vous touché », il ne prétend pas répondre « vers quel 8.5 migrer ».


Encore une chose qui peut vous faire croire que « l'outil se trompe » : une même CVE a plusieurs évaluations

Prenons CVE-2025-55754, les quatre chiffres sont tous vrais :

Qui la donneValeur
Apache (échelle ASF à quatre niveaux)low
GitHub advisorylow
CVSS v3.1 (c'est celle que NVD retient)9.6 critical
CVSS v4.02.1

Si vous ne regardez que NVD, vous croirez que c'est la plus grave ; si vous ne regardez qu'Apache, vous croirez pouvoir l'ignorer. Les deux ont raison — Apache évalue l'exploitabilité réelle en configuration par défaut, CVSS est un calcul mécanique à partir du vecteur, sans vérifier si vous avez activé la fonctionnalité.

C'est pourquoi cet outil imprime les quatre chiffres, et signale explicitement quand les deux côtés divergent.

Les deux vocabulaires ne sont pas équivalents, l'alignement ne se fait que sur l'étape officiellement prise en charge

Apache utilise low / moderate / important / critical, GitHub utilise low / medium / high / critical. La base d'alignement vient du texte original de security-impact.html officiel de Tomcat :

Important / High — A vulnerability rated as Important (or High) impact is one which could result in the compromise of data or availability of the server.

→ Important et High sont deux appellations d'un même niveau, c'est écrit ensemble par l'officiel. 🔴 En revanche, l'officiel ne dit pas que moderate et medium s'alignent, et l'outil ne le fait pas non plus à sa place — le Moderate de l'ASF définit des conditions d'exploitabilité comme « facteurs d'atténuation significatifs / n'affecte pas les configurations courantes / nécessite une authentification », tandis que le medium de GitHub est un intervalle de score CVSS ; les deux ne sont pas la même chose. Dans ce cas, le rapport indique « l'officiel ne dit pas que ces deux niveaux sont égaux » et vous présente les deux.

Selon ce critère, sur les 14 entrées, 5 sont jugées substantiellement différemment des deux côtés (le plus éloigné : CVE-2025-52520 : Apache low / GitHub high), 2 ne s'alignent pas, 7 sont identiques.


D'où viennent les données et comment les reproduire

La table de décision CveTable.java est générée, aucune ligne n'est recopiée à la main :

root@kitploit:~
python -u tools/fetch_sources.py    # récupère les trois sources primaires → tools/sources.json
python -u tools/gen_table.py        # génère CveTable.java (5 assertions, aucune ne passe → pas d'écriture de fichier)
SourceSert à répondre
CVE.org (enregistrement original d'Apache en tant que CNA)Apache a-t-il lui-même déclaré « affecte 8.5 », et quel est l'intervalle
NVDla configuration cpe contient-elle une entrée 8.5
GitHub advisoryseverity, coordonnées Maven affectées, existence d'une version corrigée côté 8.5

Avant publication / diffusion, une re-vérification indépendante est également exécutée — elle ne lit pas le sources.json ci-dessus, mais analyse le CveTable.java généré, puis interroge NVD par cpe :

root@kitploit:~
python -u tools/recheck_before_publish.py

Cette étape n'est pas une formalité : dès sa première exécution, elle a attrapé une vraie erreur. Le script de génération, pour juger « NVD contient-il 8.5 », ne reconnaissait que « borne inférieure commençant par 8.5 », or CVE-2025-24813 indique versionStartIncluding=None .. versionEndExcluding=9.0.99 — borne inférieure ouverte, elle couvre donc 8.5. La différence en était faussée d'une entrée supplémentaire. Une recherche entrée par entrée sur cveId ne l'aurait jamais détectée ; c'est en passant au critère « interroger 8.5.100 par cpe », du point de vue utilisateur, que l'erreur est apparue.


Construction

root@kitploit:~
mvn package        # → target/tomcat85-check.jar
mvn test           # 59 tests

Nécessite JDK 17+. Zéro dépendance à l'exécution, JUnit uniquement pour les tests.


License

MIT — voir LICENSE

Télécharger l’outil