Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
spring-cvss-check — Escanea artefactos y código fuente de Java en busca de CVEs de Spring/Tomcat, compara las puntuaciones CVSS del proveedor frente a las de NVD, verifica las condiciones de explotabilidad y comprueba si existen versiones corregidas en Maven Central. | Kitploit
Herramientas/GitHubGitHub/xiaoqimikko/spring-cvss-check
Escáneres de VulnerabilidadesAnálisis de VulnerabilidadesAuditoría de ConfiguraciónDevSecOpsSeguridad de Cadena de Suministro
GitHubxiaoqimikko/spring-cvss-check

spring-cvss-check

Escanea artefactos y código fuente de Java en busca de CVEs de Spring/Tomcat, compara las puntuaciones CVSS del proveedor frente a las de NVD, verifica las condiciones de explotabilidad y comprueba si existen versiones corregidas en Maven Central.

Ver Repositorio
hace 19h 57mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

spring-cvss-check

Cubre 15 avisos de seguridad oficiales de Spring / Tomcat (siete del 2026-08-20 · cinco del 2026-06-08 · uno del 2025-09-15 · dos de Tomcat del 2026-08-25).

De esos 15, en 8 casos los escáneres conectados a NVD reportan CRITICAL 9.1~9.8, mientras que la valoración oficial del fabricante es LOW / MEDIUM. En los otros 7, ambas valoraciones coinciden por completo — la única diferencia: si el fabricante envió o no su propia puntuación CVSS para el registro del CVE.

Esta herramienta responde a cuatro preguntas:

  1. Cuáles de estos 15 avisos afectan a tu versión
  2. Cuál es la puntuación oficial real (y quién puso esa puntuación en NVD)
  3. Si realmente cumples las condiciones de activación (analiza el código fuente y la configuración, no solo compara números de versión)
  4. Si la versión a la que el fabricante te pide actualizar existe en Maven Central

La tabla comparativa

CVEComponenteOficial del fabricanteNVDQuién puso la puntuación en 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 CRITICALAutoevaluación del fabricante ✅ Coincide

El único caso en el que ambas coinciden es precisamente aquel en el que el fabricante envió su propio CVSS a NVD.

La causa no es que alguien oculte algo: cuando el fabricante no envía su puntuación, CISA-ADP la asigna automáticamente según el peor escenario, y la mayoría de las herramientas SCA toman ese valor de NVD. No es un Bug, son dos sistemas de puntuación con criterios propios — pero tu proceso de respuesta ante incidentes se rige por el 9.8.

Y hay una segunda cosa: la versión a la que el fabricante te pide actualizar puede que ni siquiera se pueda descargar

Probado en la práctica (con control positivo, se re-ejecuta cada vez que se genera la tabla de reglas):

root@kitploit:~
spring-web           6.2.19 = 200   ← la versión anterior sí está en Central
spring-web           6.2.20 = 404   ← a la que el fabricante te pide subir, no existe
spring-security-core 6.5.11 = 200
spring-security-core 6.5.12 = 404

En la tabla de versiones de corrección oficial, estas versiones están marcadas como Enterprise Support Only — solo disponibles para clientes con soporte comercial. Así que si realmente te afecta, tus opciones son:actualizar a una versión mayor, o comprar soporte comercial.

Uso

root@kitploit:~
java -jar spring-cvss-check.jar <jar|war|directorio>... [--src <directorio de código fuente>]
root@kitploit:~
# Lo más común: escanear el artefacto compilado para fijar la versión y el código fuente para las condiciones de activación
java -jar spring-cvss-check.jar target/ --src src/main

# También vale con un único fat jar / war
java -jar spring-cvss-check.jar app.war

Requiere JDK 17+. Cero dependencias en tiempo de ejecución, sin conexión a red.

Códigos de salida:0 la versión no está afectada · 2 la versión está afectada pero no se encontraron condiciones de activación · 3 las condiciones de activación también se cumplen.

Cómo es la salida

root@kitploit:~
== Versiones detectadas ==
  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

== La versión está afectada por 8 avisos ==

-- CVE-2026-47884  Spring Framework Improper Path Limitation in XsltView
   Producto     Spring Framework  Afecta  6.2.0 - 6.2.19
   [Diferencia]  Oficial **MEDIUM**   <->   NVD **CRITICAL 9.8**
                Esa puntuación en NVD no la puso el fabricante, sino CISA-ADP.
   Condición    Solo si se usa XsltView, existe un mapeo "/**" que pase por el renderizado de vistas y el nombre de la vista no se especifica explícitamente
   [Afectado]   Se encontró en tu código/configuración:
                src/main/java/demo/ReportView.java  <-  XsltView(línea 2)
   [Sin actualización]  El fabricante pide subir a 6.2.20 —— **esa versión no existe en Maven Central (404)**, marcada oficialmente como Enterprise Support Only

== Resumen ==
  Tu escáner puede reportar 7 de estos 8 avisos como CRITICAL;
  mientras que la valoración **oficial del fabricante** es: 3 LOW / 4 MEDIUM / 1 CRITICAL.
  De estos 8, en 6 no se encontraron condiciones de activación en tu código fuente; en 2 sí se encontraron.
  [!] De estos 8, la versión de corrección oficial de 7 **no existe en Maven Central**

La otra cara — por qué los otros 7 no difieren

La tabla anterior puede dar a entender que «NVD siempre puntúa mal». No es así. En el mismo lote de datos hay otros 7 avisos donde la valoración oficial y la de NVD coinciden por completo:

CVEComponenteOficial del fabricanteNVDQuién puso la puntuación en NVD
CVE-2026-59270Spring SecurityCRITICAL9.4 CRITICALAutoevaluación del fabricante
CVE-2026-41843Spring FrameworkMEDIUM5.9 MEDIUMAutoevaluación del fabricante
CVE-2026-41844Spring FrameworkMEDIUM4.2 MEDIUMAutoevaluación del fabricante
CVE-2026-41846Spring FrameworkMEDIUM5.9 MEDIUMAutoevaluación del fabricante
CVE-2026-41853Spring FrameworkMEDIUM5.3 MEDIUMAutoevaluación del fabricante
CVE-2026-41848Spring FrameworkLOW3.7 LOWAutoevaluación del fabricante
CVE-2025-41249Spring FrameworkHIGH7.5 HIGHAutoevaluación del fabricante

No hay contraejemplos en ninguna de las dos direcciones, y esta es la única conclusión causal que esta herramienta se atreve a afirmar:

  • 7 avisos con valoraciones coincidentes → la fuente de la puntuación es en todos los casos [email protected] (enviada por el propio fabricante)
  • 8 avisos con valoraciones divergentes → la fuente de la puntuación es en todos los casos CISA-ADP (el fabricante no envió nada y un tercero puntuó automáticamente según el peor escenario)

El script de generación usa dos aserciones para vigilar cada una de estas direcciones (ASSERT4 / ASSERT7); si aparece cualquier contraejemplo, se niega a generar la tabla.

🔑 Por qué validar ambas direcciones: que «todas las coincidentes sean autoevaluación del fabricante» no descarta que «algunas de las divergentes también sean autoevaluación del fabricante». Si apareciera una entrada así, la causalidad tendría un contraejemplo, y validando solo una dirección la tabla se generaría igual y saldría toda en verde. Una aserción unidireccional no demuestra causalidad.


Criterios — léelo todo antes de sacar conclusiones

  • «No afectado» no significa «seguro». Las condiciones de activación pueden estar en una librería de terceros de la que dependes, pueden venir de variables de entorno o de un centro de configuración, o simplemente puede que no hayas pasado el directorio de código fuente. El informe siempre dice «no se encontró en tu código fuente», nunca «no estás afectado».
  • Solo cubre los cuatro lotes listados arriba, 15 avisos en total; no es un escáner de vulnerabilidades exhaustivo y no sustituye a un SCA.
  • La cobertura incluye la línea Spring Framework 5.3 (cuyo soporte OSS terminó el 2024-08-31, versión final 5.3.39). Si ejecutas con spring-core-5.3.39.jar, se detectarán 11 avisos, y para esos 11 la versión de corrección oficial no existe en el Maven Central público (5.3.45 / 5.3.49 / 5.3.50, todas marcadas Enterprise Support Only).
  • Solo hace coincidencia de texto, no AST. Es una decisión deliberada:los caminos críticos deben poder leerse y verificarse por uno mismo — un fallo en un análisis que nadie entiende es imposible de detectar.
  • La diferencia de valoraciones es una lectura objetiva,no es que «el fabricante te oculte algo» ni que «NVD informe mal».

De dónde salen los datos / cómo verificarlos tú mismo

La tabla de reglas la genera tools/gen_rules.py a partir de cuatro fuentes primarias, sin transcripción manual:

FuenteQué se obtiene
Aspring.io/security/<cve>Valoración oficial / rango afectado / versión de corrección (incluida la marca OSS ⟷ Enterprise)
Btomcat.apache.org/security-{9,10,11}.htmlIgual que arriba
CNVD REST APIValoración de NVD y fuente de la puntuación
Drepo1.maven.org(HEAD)Si la versión a la que el fabricante pide actualizar existe realmente en Central

Volver a ejecutarlo es volver a verificar:

root@kitploit:~
python tools/gen_rules.py

El script contiene seis aserciones; si alguna falla, se niega a generar la tabla, y tres de ellas vigilan directamente las afirmaciones de esta herramienta:

  • ASSERT2 Número de avisos donde oficial⟷NVD no coinciden —— si llega a cero, la afirmación ha dejado de ser válida y se detiene al momento
  • ASSERT3 La detección en Central incluye control positivo —— si el control falla, todos esos 404 quedan invalidados
  • ASSERT4 En los avisos coincidentes, la fuente de la puntuación debe ser la autoevaluación del fabricante —— es la única evidencia de la «causa»

License

Apache-2.0

Descargar herramienta