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
spring-cvss-check — Scanne les artefacts et sources Java à la recherche de CVE Spring/Tomcat, compare les scores CVSS du fournisseur à ceux de la NVD, vérifie les conditions d'exploitabilité et contrôle si des versions corrigées existent sur Maven Central. | Kitploit
Outils/GitHubGitHub/xiaoqimikko/spring-cvss-check
Scanners de VulnérabilitésAnalyse des VulnérabilitésAudit de ConfigurationDevSecOpsSécurité de la Chaîne Logistique
GitHubxiaoqimikko/spring-cvss-check

spring-cvss-check

Scanne les artefacts et sources Java à la recherche de CVE Spring/Tomcat, compare les scores CVSS du fournisseur à ceux de la NVD, vérifie les conditions d'exploitabilité et contrôle si des versions corrigées existent sur Maven Central.

Voir le dépôt
il y a 19h 59mPas 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 →
Partager

spring-cvss-check

Couvre 15 bulletins de sécurité officiels Spring / Tomcat (sept du 2026-08-20 · cinq du 2026-06-08 · un du 2025-09-15 · deux Tomcat du 2026-08-25).

Parmi elles, 8 sont signalées CRITICAL 9.1~9.8 par les scanners basés sur NVD, alors que l'évaluation officielle du fournisseur est LOW / MEDIUM. Les 7 autres ont des évaluations parfaitement identiques des deux côtés — la seule différence : le fournisseur a-t-il soumis lui-même un score CVSS pour l'enregistrement CVE.

Cet outil répond à quatre questions :

  1. Lesquelles de ces 15 entrées votre version touche-t-elle
  2. Quel est le score officiel (et qui a attribué celui sur NVD)
  3. Les conditions de déclenchement sont-elles réellement remplies (analyse du code source et de la configuration, pas seulement une comparaison de versions)
  4. La version vers laquelle le fournisseur vous demande de migrer existe-t-elle sur Maven Central

Le tableau comparatif

CVEComposantOfficiel fournisseurNVDQui a attribué le score NVD
CVE-2026-59313Spring FrameworkLOW9.8 CRITICALCISA-ADP
CVE-2026-47890Spring FrameworkLOW9.8 CRITICALCISA-ADP
CVE-2026-59283Spring FrameworkMEDIUM9.1 CRITICALCISA-ADP
CVE-2026-47891Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-47884Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-47892Spring FrameworkMEDIUM9.8 CRITICALCISA-ADP
CVE-2026-65637Apache TomcatModerate9.8 CRITICALCISA-ADP
CVE-2026-65905Apache TomcatLow9.8 CRITICALCISA-ADP
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALAuto-évaluation fournisseur ✅ Identique

La seule entrée identique des deux côtés est précisément celle où le fournisseur a soumis lui-même le CVSS à NVD.

La cause n'est pas une dissimulation : lorsque le fournisseur ne soumet pas de score, CISA-ADP attribue automatiquement un score selon le pire scénario, et la plupart des outils SCA reprennent la valeur NVD. Ce n'est pas un bug, c'est le référentiel propre à chacun des deux systèmes de notation — mais votre processus d'urgence suit le 9.8.

Et il y a une seconde chose : la version vers laquelle le fournisseur vous demande de migrer peut être introuvable

Test réel (avec témoin positif, relancé à chaque génération de la table de règles) :

root@kitploit:~
spring-web           6.2.19 = 200   ← la version précédente est sur Central
spring-web           6.2.20 = 404   ← celle vers laquelle le fournisseur vous demande de migrer, absente
spring-security-core 6.5.11 = 200
spring-security-core 6.5.12 = 404

Dans le tableau des versions de correctif du fournisseur, ces versions sont marquées Enterprise Support Only — réservées aux clients ayant acheté le support commercial. Donc si vous êtes réellement concerné, vos options sont : migrer vers une version majeure supérieure, ou acheter le support commercial.

Utilisation

root@kitploit:~
java -jar spring-cvss-check.jar <jar|war|répertoire>... [--src <répertoire source>]
root@kitploit:~
# Le plus courant : scanner l'artefact compilé pour la version, scanner le code source pour les conditions de déclenchement
java -jar spring-cvss-check.jar target/ --src src/main

# Un seul fat jar / war suffit aussi
java -jar spring-cvss-check.jar app.war

Nécessite JDK 17+. Zéro dépendance à l'exécution, aucune connexion réseau.

Code de sortie : 0 version non concernée · 2 version concernée mais aucune condition de déclenchement trouvée · 3 conditions de déclenchement également remplies.

À quoi ressemble la sortie

root@kitploit:~
== Versions détectées ==
  Spring Framework   6.2.19         .../spring-core-6.2.19.jar
  Spring Security    6.5.11         .../spring-security-core-6.5.11.jar
  Apache Tomcat      9.0.37         .../tomcat-embed-core-9.0.37.jar

== Version concernée par 8 entrées ==

-- CVE-2026-47884  Spring Framework Improper Path Limitation in XsltView
   Produit     Spring Framework  Affecté 6.2.0 - 6.2.19
   [Écart]     Officiel **MEDIUM**   <->   NVD **CRITICAL 9.8**
               Le score NVD n'est pas attribué par le fournisseur, mais par CISA-ADP.
   Condition   Uniquement si XsltView est utilisé, qu'il existe un mapping "/**" passant par le rendu de vue, et que le nom de vue n'est pas explicitement spécifié
   [Trouvé]    Dans votre code/configuration :
               src/main/java/demo/ReportView.java  <-  XsltView(ligne 2)
   [Non migrable]  Le fournisseur demande de migrer vers 6.2.20 —— **cette version n'existe pas sur Maven Central (404)**, marquée Enterprise Support Only par le fournisseur

== Résumé ==
  Votre scanner peut signaler 7 de ces 8 entrées comme CRITICAL ;
  alors que l'évaluation **officielle du fournisseur** est : 3 LOW / 4 MEDIUM / 1 CRITICAL.
  Parmi ces 8 entrées, 6 n'ont pas de condition de déclenchement trouvée dans votre code source, 2 en ont une.
  [!] Pour 7 d'entre elles, la version de correctif fournie par le fournisseur **n'existe tout simplement pas sur Maven Central**

L'autre moitié — pourquoi les 7 autres ne divergent pas

Le tableau ci-dessus pourrait laisser penser que « NVD attribue toujours des scores au hasard ». Non. Dans le même lot de données, il y a 7 autres entrées dont l'évaluation officielle et l'évaluation NVD sont parfaitement identiques :

CVEComposantOfficiel fournisseurNVDQui a attribué le score NVD
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALAuto-évaluation fournisseur
CVE-2026-41843Spring FrameworkMEDIUM5.9 MEDIUMAuto-évaluation fournisseur
CVE-2026-41844Spring FrameworkMEDIUM4.2 MEDIUMAuto-évaluation fournisseur
CVE-2026-41846Spring FrameworkMEDIUM5.9 MEDIUMAuto-évaluation fournisseur
CVE-2026-41853Spring FrameworkMEDIUM5.3 MEDIUMAuto-évaluation fournisseur
CVE-2026-41848Spring FrameworkLOW3.7 LOWAuto-évaluation fournisseur
CVE-2025-41249Spring FrameworkHIGH7.5 HIGHAuto-évaluation fournisseur

Aucun contre-exemple dans les deux directions, c'est le seul jugement causal que cet outil ose affirmer :

  • 7 entrées avec évaluations identiques → la source du score est dans tous les cas [email protected] (soumis par le fournisseur lui-même)
  • 8 entrées avec évaluations divergentes → la source du score est dans tous les cas CISA-ADP (le fournisseur n'a pas soumis, un tiers attribue automatiquement selon le pire scénario)

Le script de génération utilise deux assertions pour surveiller respectivement ces deux directions (ASSERT4 / ASSERT7) ; si un contre-exemple apparaît, la table est refusée.

🔑 Pourquoi vérifier les deux directions : le fait que « les entrées identiques soient toutes des auto-évaluations du fournisseur » n'exclut pas que certaines entrées divergentes soient aussi des auto-évaluations du fournisseur. Si une telle entrée apparaissait, la causalité aurait un contre-exemple, et en ne vérifiant qu'une seule direction, la table entière serait quand même générée et tout serait vert. Une assertion unidirectionnelle ne prouve pas la causalité.


Référentiel — à lire entièrement avant de conclure

  • « Non concerné » ne signifie pas « sûr ». La condition de déclenchement peut se trouver dans une bibliothèque tierce dont vous dépendez, être déployée via des variables d'environnement ou un centre de configuration, ou simplement vous n'avez pas transmis le répertoire du code source. Le rapport dit toujours « non trouvé dans votre code source », jamais « vous n'êtes pas affecté ».
  • Couvre uniquement les quatre lots listés ci-dessus, soit 15 entrées au total, ce n'est pas un scanner de vulnérabilités exhaustif et ne remplace pas un SCA.
  • La couverture inclut la ligne Spring Framework 5.3 (support OSS terminé le 2024-08-31, version finale 5.3.39). En exécutant avec spring-core-5.3.39.jar, 11 entrées sont concernées, et pour ces 11 entrées, aucune version de correctif fournie par le fournisseur n'existe sur Maven Central public (5.3.45 / 5.3.49 / 5.3.50, toutes marquées Enterprise Support Only).
  • Correspondance textuelle uniquement, pas d'AST. C'est un compromis délibéré : le chemin critique doit pouvoir être lu et vérifié par un humain — une décision incompréhensible, si elle est erronée, ne peut être détectée par personne.
  • L'écart d'évaluation est une lecture objective, ce n'est ni « le fournisseur vous cache quelque chose » ni « NVD signale au hasard ».

D'où viennent les données / comment vérifier soi-même

La table de décision est générée par tools/gen_rules.py à partir de quatre sources primaires, sans recopie manuelle :

SourceCe qui est récupéré
Aspring.io/security/<cve>Évaluation officielle / plage affectée / version de correctif (avec marquage OSS ⟷ Enterprise)
Btomcat.apache.org/security-{9,10,11}.htmlIdem
CNVD REST APIÉvaluation NVD et source du score
Drepo1.maven.org(HEAD)La version vers laquelle le fournisseur demande de migrer existe-t-elle réellement sur Central

Relancer une fois équivaut à une nouvelle vérification :

root@kitploit:~
python tools/gen_rules.py

Le script contient six assertions ; si l'une échoue, la table est refusée, dont trois qui surveillent directement les affirmations de cet outil :

  • ASSERT2 Nombre d'entrées avec divergence officiel⟷NVD — s'il tombe à zéro, l'affirmation est invalidée, arrêt immédiat
  • ASSERT3 Détection Central avec témoin positif — si le témoin échoue, tous les 404 de ce lot sont annulés
  • ASSERT4 Pour l'entrée identique, la source du score doit être une auto-évaluation du fournisseur — c'est la seule preuve de la « cause »

License

Apache-2.0

Télécharger l’outil