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
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 ha llegado a su fin de vida útil (EOL), versión final 8.5.100. Apache ha declarado individualmente que «8.5 también está afectado» en 14 CVEs de 2025, de las cuales 10 no se pueden encontrar en NVD consultando 8.5.100. Un único jar sin conexión, lee conf/ para determinar exactamente cuáles te afectan. | Kitploit
Herramientas/GitHubGitHub/xiaoqimikko/tomcat85-check
Seguridad de Infraestructura en la NubeEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesAuditoría de ConfiguraciónSeguridad WebDevSecOps
GitHubxiaoqimikko/tomcat85-check

tomcat85-check

Ver Repositorio
hace 1 díaAú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 →

Acerca de

CVE-2025-55752 CVE-2025-55754 CVE-2025-48988 CVE-2025-52520 CVE-2025-53506 CVE-2025-61795 CVE-2025-66614:Tomcat 8.5 ha llegado a su fin de vida útil (EOL), versión final 8.5.100. Apache ha declarado individualmente que «8.5 también está afectado» en 14 CVEs de 2025, de las cuales 10 no se pueden encontrar en NVD consultando 8.5.100. Un único jar sin conexión, lee conf/ para determinar exactamente cuáles te afectan.

Compartir

tomcat85-check

¿Todavía ejecutas Tomcat 8.5? Esta herramienta te dice exactamente qué CVE de 2025 te afectan — porque esta pregunta no tiene respuesta completa ni en las páginas oficiales, ni en NVD, ni en los escáneres.

Un único jar sin dependencias, funciona sin conexión, sin red y sin subir nada.


Qué resuelve

Tomcat 8.5 llegó a su EOL el 2024-03-31, y su versión final fue la 8.5.100 (publicada el 2024-03-19). Después de eso, Apache siguió declarando en los registros CVE, uno a uno, que «8.5 también está afectado», y el lugar donde lo dice es el que menos gente consulta.

La página de seguridad oficial de Apache para 9.x lista 17 CVE-2025-*, de los cuales 14 dicen textualmente:

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

(texto original — en 8 de las 14 entradas, through está escrito como though; el límite inferior suele ser 8.5.0, aunque también hay 8.5.6 / 8.5.44 / / )

8.5.60
8.5.90

Esas 14 entradas, en los tres sitios donde la gente las consulta, se ven así:

Dónde lo consultasLo que ves
Página de seguridad oficial de Apache para 8.5 (security-8.html)Cero entradas de 2025 — la página se detiene en 2024-02-19 Fixed in Apache Tomcat 8.5.99
NVDSi buscas 8.5.100 por cpe, de esas 14 solo devuelve 4; las otras 10 no tienen 8.5 en su configuración cpe
GitHub advisoryLas 14 están, pero en el lado de 8.5 el first_patched_version es null en todas

El único sitio que documenta esto completo es el registro original que Apache, como CNA, envía a CVE.org — es decir, la capa que menos gente revisa. Lo que hace esta herramienta es confrontar la información de esa capa con la versión realmente instalada en tu máquina.

🔴 Esta herramienta expone diferencias entre fuentes de datos, no el comportamiento de un producto. «Si tu escáner reporta o no esas 10 entradas» depende de qué base lea y cómo la combine — eso no se ha probado, así que aquí no se escribe.


La otra mitad, igual de importante: de las 14, solo 2 afectan a la configuración por defecto

Reportar solo por número de versión equivale a decir que también «te afectan» las 12 entradas que solo se cumplen con una configuración específica — eso te haría hacer algo innecesario.

Por eso, cuando se le pasa un directorio de instalación, la herramienta lee todos los XML de conf/ (incluido conf/Catalina/<host>/), elimina los bloques de comentarios y luego busca los marcadores de las condiciones que activan cada vulnerabilidad. Quitar comentarios no es opcional: en el server.xml oficial, una búsqueda de texto de UpgradeProtocol da 1 coincidencia, pero tras quitar comentarios da 0 — el bloque entero está comentado.

Con una instalación limpia de la 8.5.100 oficial, el resultado es:

root@kitploit:~
2 afectadas por defecto · 0 confirmadas por configuración · 11 requieren confirmación manual · 1 no aplica
de las cuales 10 no aparecen en la configuración cpe de NVD para 8.5

Si en esa misma configuración se activan HTTP/2, RewriteValve y CGIServlet, las «confirmadas por configuración» pasan a ser 5.


Uso

root@kitploit:~
java -jar tomcat85-check.jar <directorio de instalación | jar | war> ...

  --all     incluye también las entradas «versión fuera del rango»
  --utf8    añádelo si la consola de Windows muestra caracteres chinos corruptos
root@kitploit:~
# Tomcat desplegado desde un directorio — pasa el nivel que contiene conf/, ahorrarás mucho trabajo manual
java -jar tomcat85-check.jar /opt/tomcat

# Con un solo jar / war también se puede escanear
java -jar tomcat85-check.jar /opt/app/lib/catalina.jar

Cómo se reconoce la versión en despliegues desde directorio

Los jars de lib/ no llevan ningún número de versión en el nombre del archivo (son catalina.jar, no catalina-8.5.100.jar). Las herramientas que solo extraen la versión del nombre de archivo no reconocen ni una sola en este tipo de despliegues — y «no se ha escaneado nada» se ve exactamente igual que «estás seguro».

Esta herramienta obtiene la versión en este orden:

  1. server.number de catalina.jar!/org/apache/catalina/util/ServerInfo.properties — es lo que reporta el propio version.sh de Tomcat
  2. Implementation-Version del META-INF/MANIFEST.MF
  3. El nombre del archivo (solo sirve para formas como las de Spring Boot embebido)

Cuando las dos fuentes no coinciden (ServerInfo.properties se puede sobrescribir, y se usa a menudo para ocultar la versión), se reportan ambas, sin elegir por ti.


Tres líneas que no se cruzan

Uno: se puede confirmar que está activado, no que no lo esté. Que el informe diga «no encontrado» significa «no lo he encontrado en los archivos que he revisado», no «no lo tienes activado». La configuración puede estar en sitios que esta herramienta no ve: WEB-INF/web.xml dentro de un war, un CATALINA_BASE externo, parámetros de arranque. Por eso no existe la categoría «no afectado» — lo que no se encuentra cae siempre en requiere confirmación manual.

Dos: que se encuentre no siempre significa que sea eso. Por ejemplo, en el server.xml oficial por defecto, AprLifecycleListener ya viene activado, pero solo intenta cargar la librería nativa — si la librería no existe, el conector APR no se activa. Así que es un «marcador débil»: si coincide, solo se reporta «posible», no «confirmado».

Tres: no hay ninguna versión 8.5 a la que actualizar. El first_patched_version de las 14 entradas es null en el lado de 8.5. No es que «aún no esté corregido», es que «no se corregirá para 8.5». La única salida es cambiar de línea (9.0 / 10.1 / 11.0). Esta herramienta responde «qué te afecta», no pretende responder «a qué 8.5 actualizar».


Otra cosa que te hará pensar que «la herramienta falla»: un mismo CVE tiene varias calificaciones

Tomemos CVE-2025-55754 como ejemplo; los cuatro números son reales:

Quién lo asignaValor
Apache (escala ASF de cuatro niveles)low
GitHub advisorylow
CVSS v3.1 (el que adopta NVD)9.6 critical
CVSS v4.02.1

Si solo miras NVD, pensarás que es de lo más grave; si solo miras Apache, pensarás que puedes ignorarlo. Ninguno de los dos está equivocado — Apache califica la explotabilidad real en la configuración por defecto, mientras que CVSS se calcula mecánicamente según el vector, sin mirar si tienes o no activada esa función.

Por eso esta herramienta imprime los cuatro números y, cuando las dos partes no coinciden, lo dice explícitamente.

Las dos escalas no son lo mismo; la equiparación solo se hace en el paso que Apache respalda oficialmente

Apache usa low / moderate / important / critical, y GitHub usa low / medium / high / critical. La base de la equiparación está en el texto original de security-impact.html 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 y High son dos nombres para el mismo nivel; es el propio Apache quien los escribe juntos. 🔴 En cambio, Apache no ha dicho oficialmente que moderate y medium sean equiparables, y esta herramienta tampoco lo hace por él — el Moderate de ASF define condiciones de explotabilidad como «tiene factores de mitigación significativos / no afecta a configuraciones comunes / requiere autenticación», mientras que el medium de GitHub es un rango de puntuación CVSS; no son lo mismo. En ese caso se reporta «Apache no ha dicho que estos dos niveles sean iguales» y se te muestran ambos.

Con este criterio, de las 14 entradas, 5 tienen valoraciones sustancialmente distintas entre ambas partes (la más extrema es CVE-2025-52520: Apache low / GitHub high), 2 no se pueden equiparar y 7 coinciden.


De dónde salen los datos y cómo reproducirlos

La tabla de decisión CveTable.java está generada, sin una sola línea copiada a mano:

root@kitploit:~
python -u tools/fetch_sources.py    # descarga las tres fuentes primarias → tools/sources.json
python -u tools/gen_table.py        # genera CveTable.java (5 aserciones; si alguna falla, no escribe el archivo)
FuenteSirve para responder
CVE.org (registro original de Apache como CNA)si el propio Apache ha declarado «afecta a 8.5» y con qué rango
NVDsi la configuración cpe incluye 8.5
GitHub advisoryseverity, coordenadas Maven afectadas, si hay versión corregida en el lado de 8.5

Antes de publicar o anunciar, se ejecuta además una verificación con criterio independiente — no lee el sources.json anterior, sino que analiza el CveTable.java generado y vuelve a consultar NVD por cpe:

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

Este paso no es un mero trámite: en su primera ejecución ya detectó un error real. El script de generación, al decidir si «NVD tiene 8.5», solo reconocía los rangos cuyo límite inferior empezaba por 8.5, pero CVE-2025-24813 declara versionStartIncluding=None .. versionEndExcluding=9.0.99 — con el límite inferior abierto, sí cubre 8.5. Por eso la diferencia se calculó con una entrada de más. Consultar cveId una a una jamás habría revelado ese fallo; solo lo destapó cambiar al criterio del usuario, «buscar 8.5.100 por cpe».


Compilación

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

Requiere JDK 17+. Sin dependencias en tiempo de ejecución; JUnit solo para pruebas.


License

MIT — ver LICENSE

Descargar herramienta