Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
tomcat-check — Descubra a versão real do Tomcat embutido no Spring Boot (não está no pom) e, para cada CVE de 2026, forneça ao mesmo tempo a classificação oficial da ASF e a classificação do GitHub, as condições de acionamento e se este item gerará alerta no Dependabot CVE-2026-41293 | Kitploit
Ferramentas/GitHubGitHub/xiaoqimikko/tomcat-check
Scanners de VulnerabilidadesAnálise de VulnerabilidadesAuditoria de ConfiguraçãoSegurança WebDevSecOpsSegurança da Cadeia de Suprimentos
GitHubxiaoqimikko/tomcat-check

tomcat-check

Descubra a versão real do Tomcat embutido no Spring Boot (não está no pom) e, para cada CVE de 2026, forneça ao mesmo tempo a classificação oficial da ASF e a classificação do GitHub, as condições de acionamento e se este item gerará alerta no Dependabot CVE-2026-41293

Ver Repositório
há 8 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

tomcat-check

Descubra a versão real do Tomcat que você tem instalada e, para cada CVE de 2026, forneça simultaneamente duas classificações e as condições de acionamento.

Um único jar sem dependências, executado offline, sem conexão de rede e sem enviar nada.


O que resolve

1. A versão do Tomcat embutido em projetos Spring Boot não está no seu pom.

Ela é controlada pela propriedade tomcat.version do spring-boot-starter-parent; no pom você só vê o spring-boot-starter-web. Por isso, a ferramenta escaneia os artefatos de build (jar / fat jar / diretórios de instalação), e não lê o pom.

2. Alguns itens não entram nos alertas do Dependabot.

Em 2026, o Tomcat divulgou 29 CVEs, e parte delas não aparece nos alertas de projetos Spring Boot por dois mecanismos:

MecanismoExplicação
advisory é unreviewedO GitHub só usa advisories reviewed para alertas do Dependabot. unreviewed é o estado normal do fluxo em que a NVD importa automaticamente e os pacotes afetados ainda não foram confirmados manualmente
Coordenadas não batemO advisory fica em coordenadas como org.apache.tomcat:tomcat-coyote, mas a árvore de dependências do Spring Boot só tem tomcat-embed-core / -el / -websocket

Efeito prático: um aplicativo Spring Boot com Tomcat embutido 9.0.118 tem o painel do Dependabot totalmente verde, e esta ferramenta reporta 4 correspondências, sendo que uma delas é exposta já na configuração padrão.

3. Os dois sistemas de classificação têm critérios diferentes, e você só vê um deles.

ASF / Tomcat oficialGitHub / NVD
NíveisLow / Moderate / Important / CriticalValor CVSS
Base

Das 29, 17 têm diferença de 2 níveis ou mais entre as duas classificações; o caso mais extremo é o CVE-2026-41293: oficial Low, GitHub critical CVSS 9.8.

Isto não é erro de ninguém. Os dois sistemas medem coisas diferentes por natureza. Mas para decidir "devo atualizar agora?", você precisa ver os dois ao mesmo tempo — e saber se ativou esse recurso.


Uso

root@kitploit:~
java -jar tomcat-check.jar <jar 或目录> ...

  --all     连「不适用」的条目也列出来
  --utf8    Windows 控制台中文乱码时加这个
root@kitploit:~
# Spring Boot fat jar
java -jar tomcat-check.jar target/my-app.jar

# 独立安装的 Tomcat
java -jar tomcat-check.jar /opt/tomcat

# 整个依赖目录
java -jar tomcat-check.jar target/lib

Requer Java 17+.

O que a saída contém

Cada correspondência fornece: as duas classificações, condições de acionamento, o texto original da descrição oficial e se ela aparecerá ou não nos alertas do seu Dependabot. Ao final, é fornecido um alvo de upgrade que cobre todas as correspondências.

🔴 Leia a saída assim

  • "Correspondência" = a sua versão está dentro do intervalo Affects oficial; não significa "já explorada" nem "necessariamente explorável". Das 29, apenas algumas são expostas na configuração padrão; as demais exigem que você ative explicitamente algum recurso (RewriteValve, autenticação DIGEST, AJP, WebDAV, comunicação de cluster...). Confira cada uma contra as condições de acionamento.
  • "O Dependabot não vai alertar" não significa que o GitHub falhou. unreviewed é um estado normal do fluxo.
  • A tabela de avaliação cobre somente CVEs divulgadas em 2026. Não haver correspondência não significa que a sua versão está livre de problemas.
  • A ferramenta não decide por você se deve atualizar — ela entrega as três coisas necessárias para essa decisão: qual versão você instalou, como o oficial avalia e quais são as condições de acionamento.

De onde vem a tabela de avaliação

tools/gen_rules.py gera CveTable.java a partir de duas fontes primárias, sem copiar uma única linha manualmente:

  • https://tomcat.apache.org/security-{9,10,11}.html — classificação oficial, título, texto original da descrição, intervalos afetados
  • GitHub Advisory API — classificação do GitHub, CVSS, type, coordenadas Maven afetadas

O processo de geração inclui 7 asserções; se qualquer uma falhar, ele aborta e não grava o arquivo. Três merecem destaque:

  • ASSERT7 (integridade do parsing): usa uma segunda abordagem independente de regex para contar novamente os itens; os dois conjuntos têm de ser exatamente iguais. A origem é um tipo muito sutil de erro de correspondência — na página oficial, alguns títulos têm embutido o link de outro CVE: <strong>Moderate: The fix for <a>CVE-2025-66614</a> was incomplete</strong> <a>CVE-2026-32990</a>. Procurar "o primeiro CVE" no bloco inteiro acaba pegando o número antigo embutido no título; a consequência não é perder um item, é trocar um pelo outro: um CVE fica com o título e a descrição de outro, enquanto geração, testes e verificação de artefatos reais continuam passando normalmente.
  • ASSERT3 (direção do pareamento): na página oficial, a linha Affects: fica logo acima do título do próximo CVE, sendo muito fácil parear com o item errado — se errar, você obtém uma tabela que "parece perfeitamente normal, mas está deslocada uma posição". usanado first_patched_version do GitHub para validação cruzada, no desenvolvimento ela realmente pegou um deslocamento uma vez.
  • ASSERT6 (base da exclusão): baixa os jars reais das linhas 9.0 / 10.1 / 11.0 e confirma um a um que o código dos itens excluídos (componentes de cluster, conector FFM, aplicações de exemplo) realmente não está em tomcat-embed-*. A base da exclusão tem de ser verificação prática, não "eu lembro".

Para regenerar:

root@kitploit:~
python tools/gen_rules.py

Build

root@kitploit:~
mvn clean package     # → target/tomcat-check.jar

34 testes. Zero dependências em tempo de execução; JUnit apenas nos testes.

Licença

MIT

Baixar ferramenta
Explorabilidade real na configuração padrão
Cálculo mecânico a partir do vetor, sem verificar se você ativou o recurso
Onde vertomcat.apache.org/security-9.htmlO Dependabot envia direto para você