
CVE-2026-24880 : les conseils de mise à niveau d'Apache s'appliquent-ils réellement à votre Tomcat ? Détecte le correctif par la présence de classes, et non par comparaison de versions. Couvre les lignes 7.0/8.0/8.5/9.0/10.0/10.1/11.0.
CVE-2026-24880 · GHSA-563x-q5rq-57qp — la phrase d'Apache
upgrade to version 11.0.20, 10.1.52 or 9.0.116 s'applique-t-elle à vous ?
Pour la plupart des gens, non — et il existe quatre façons différentes que cela ne s'applique pas. Cet outil analyse vos artefacts et vous indique laquelle.
java -jar tomcat-line-check.jar /path/to/tomcat # Tomcat déployé décompressé
java -jar tomcat-line-check.jar app.war # war
java -jar tomcat-line-check.jar app.jar # fat jar Spring Boot
java -jar tomcat-line-check.jar --table # voir uniquement le tableau de décision des sept lignes
java -jar tomcat-line-check.jar --utf8 ... # à ajouter en cas de caractères chinois illisibles sur la console Windows
unzip -l tomcat-coyote-<ver>.jar | grep ChunkExtension
Présence de org/apache/tomcat/util/http/parser/ChunkExtension.class = correctif inclus ; absence = correctif manquant.
🔴 Cet outil ne compare pas les numéros de version pour déterminer si le correctif est appliqué — car la logique des numéros de version est précisément ce qui pose problème sur cette CVE.
Le tableau de décision est généré par tools/gen_table.py à partir de sources primaires ; sept groupes d'assertions doivent passer, sinon le tableau est refusé.
| Ligne | Version finale | EOL | Correctif présent | Issue |
|---|---|---|---|---|
| 7.0 | 7.0.109 | 2021-03-31 | Non | ❌ 7.0.110 = 404 |
| 8.0 | 8.0.53 | 2018-06-30 | Non | ❌ 8.0.54 = 404 |
| 8.5 | 8.5.100 | 2024-03-31 | Non | ❌ 8.5.101 = 404 |
| 10.0 | 10.0.27 | 2022-10-31 | Non | ❌ 10.0.28 = 404 |
| 9.0 | 9.0.121 | 2027-03-31 | 9.0.115 non | ✅ 9.0.116 |
| 10.1 | 10.1.59 | Pas encore EOL | 10.1.52 non | ✅ 10.1.53 |
| 11.0 | 11.0.25 | Pas encore EOL | 11.0.18 non | ✅ 11.0.20 |
① Vous êtes sur la ligne 8.5 / 7.0 / 8.0 — aucune des trois versions fournies par l'officiel n'est sur votre ligne,
et votre ligne n'est plus publiée (8.5.101 / 7.0.110 / 8.0.54 renvoient tous un 404 sur Maven Central).
8.0 est un cas particulier : l'officiel la marque unknown, sans même répondre à la question « êtes-vous concerné ? ».
② Vous êtes sur la ligne 10.1 — l'officiel vous demande de passer à 10.1.52, or 10.1.52 lui-même manque du correctif.
Le paragraphe précédent du même bulletin liste 10.1.0-M1 through 10.1.52 comme affectés.
La security-10.html d'Apache
classe cette CVE dans la section 10.1.53 ; le compare 10.1.52...10.1.53 contient effectivement le commit de correctif f07df938.
→ Suivre cette phrase revient à ne rien corriger.
③ Vous êtes sur la ligne 10.0 — 10.0. apparaît 0 fois dans le bulletin officiel.
Ni dans la liste des versions affectées, ni dans les deux unknown ; les deux plages de l'advisory GitHub
(>= 7.0.0, < 9.0.116 et >= 10.1.0-M1, < 10.1.52) ne la couvrent pas non plus.
Or les membres de ChunkedInputFilter de 10.0.27 sont identiques mot pour mot à ceux de 7.0.109 / 8.5.100, et 10.0.28 renvoie un 404.
→ Aucune source n'a jamais répondu si 10.0 est concerné.
④ Vous utilisez Dependabot / OSV — l'advisory GitHub regroupe 7.0/8.5/9.0 en une seule plage,
first_patched_version = 9.0.116, donc la machine demande aux utilisateurs de 8.5 de passer à 9.0.116.
C'est une autre ligne de version majeure, pas un correctif.
low(l'advisory GitHub la marque high / CVSS 7.5).
Les deux chiffres sont listés ici, sans choisir celui qui nous arrange.1b586d6(9.0)· f07df938(10.1)· fde1a82(11.0)python tools/gen_table.py --dry # exécute uniquement les assertions, sans écrire de fichier
python tools/gen_table.py # n'écrit LineTable.java que si toutes les assertions passent
Les assertions couvrent : les positifs (9.0.116 / 10.1.53 / 11.0.20 doivent contenir la classe de correctif), les négatifs (9.0.115 / 10.1.52 ne doivent pas la contenir), l'affirmation centrale (la recommandation officielle mentionne bien 10.1.52), les lignes EOL, l'absence d'issue (la version suivante de la version finale doit renvoyer un 404), les sentinelles (une version inexistante doit renvoyer un 404, prouvant que le critère du 404 fonctionne), et l'absence de 10.0.
mvn package # nécessite JDK 17 ; zéro dépendance à l'exécution
Apache-2.0