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
async-http-client-check — Espaço de trabalho de IA auto-hospedado com agentes, habilidades e ferramentas (Gmail, Calendar) que funciona inteiramente com as suas próprias chaves de API de provedores (BYOK). Traga as suas próprias chaves — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI. | Kitploit
Ferramentas/GitHubGitHub/xiaoqimikko/async-http-client-check
Ferramentas DefensivasAnálise EstáticaScanners de VulnerabilidadesAnálise de VulnerabilidadesDevSecOpsUtilitários e FrameworksSegurança da Cadeia de Suprimentos
GitHubxiaoqimikko/async-http-client-check

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 →

async-http-client-check

Espaço de trabalho de IA auto-hospedado com agentes, habilidades e ferramentas (Gmail, Calendar) que funciona inteiramente com as suas próprias chaves de API de provedores (BYOK). Traga as suas próprias chaves — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI.

Ver Repositório
há 11h 11mAinda não revisado
Compartilhar

async-http-client-check

Verificador offline para os 21 avisos de segurança em nível de repositório do org.asynchttpclient:async-http-client (AsyncHttpClient, "AHC"). Ele informa a quais deles seu jar está realmente exposto, sinaliza os que o Dependabot e o OSV não conseguem ver, e dá uma resposta por linha: 3.0.13 (3.x) / 2.16.1 (2.x).

Jar único, zero dependências de runtime, totalmente offline, Java 17+.


Por que isso existe

1. 17 avisos foram publicados em 2026-08-09 — o banco de dados global tem 4 deles

Em 2026-08-09, os mantenedores do AsyncHttpClient publicaram 17 avisos de segurança no próprio repositório do projeto (AsyncHttpClient/async-http-client → Security → Advisories).

O Dependabot e o OSV não leem essa página. Eles leem o . Em 2026-09-19, esse banco contém apenas dos 17 (, , , , todos adicionados em 2026-09-17). Os outros retornam em ; dois desses 13 ainda têm IDs CVE (, ).

banco de dados global de avisos do GitHub
4
CVE-2026-85716
CVE-2026-85717
CVE-2026-85720
CVE-2026-85721
13
404
GET /advisories/<GHSA>
CVE-2026-85718
CVE-2026-85719

Incluindo os quatro avisos mais antigos (CVE-2024-53990, CVE-2026-40490, CVE-2026-45300, CVE-2026-55688), o repositório lista 21; o banco de dados global tem 8.

2. A versão que o Dependabot manda instalar é ela mesma afetada por 5 deles

Calcule "a versão que resolve tudo" a partir do banco de dados global e a resposta para 3.x é 3.0.12. O OSV concorda: POST /v1/query para 3.0.12 retorna zero vulnerabilidades.

Os avisos do repositório dizem que 3.0.12 ainda está dentro do intervalo de cinco:

AvisoSeveridadeO quêRequer
GHSA-rqf5-2wxv-rjf4altaUm desafio Digest sem nonce utilizável é respondido com Authorization: Basic, ou seja, a senha em base64Um Realm Digest (autenticação de servidor ou proxy)
GHSA-jmqq-x5g9-9p2waltaQuando uma requisição é reproduzida para um host diferente, a requisição/credenciais do primeiro host vão para o segundo hostReprodução para outro host (um ResponseFilter de failover ou o caminho de retry de IOException) e credenciais ou um proxy
GHSA-vvp4-63h8-v5pmmédiaConexões NTLM / Negotiate são reutilizadas entre principalsNTLM ou Negotiate com credenciais por requisição
GHSA-f9m8-cv68-674wmédiaO Domain do cookie não é verificado contra a lista de sufixos públicos (Domain=co.uk)Um CookieStore compartilhado entre origens
GHSA-qhv6-3pmh-95q4baixaqop="auth-int" desativa a autenticação mútua Digest (apenas 3.0.12)Autenticação Digest

Seja preciso sobre os dois de severidade alta: eles vazam credenciais, mas apenas se você configurou credenciais (um Realm, Digest/NTLM ou um proxy) — e GHSA-jmqq adicionalmente precisa de uma reprodução para um host diferente. Um cliente fazendo GETs simples não autenticados não está exposto a eles. Esta ferramenta não sabe como você usa o cliente; ela relata o que o intervalo de versões diz e deixa a decisão com você.

Os próprios mantenedores dizem isso no texto de CVE-2026-85721:

Note que 3.0.12 é ela mesma afetada por um problema separado, GHSA-rqf5-2wxv-rjf4 … Atualize para 3.0.13 para obter ambas as correções.

Então em 3.x: o Dependabot diz 3.0.12, e depois que você atualiza ele mostra verde. A resposta real é 3.0.13. Em 2.x a resposta é 2.16.1 de qualquer forma — mas 13 dos avisos por trás disso ainda são invisíveis para o seu scanner.

3. A bomba de descompressão não precisa de configuração

CVE-2026-85721 (alta) é o que se aplica a configurações padrão: a descompressão automática de respostas está ativada por padrão, e o caminho HTTP/1.1 infla o corpo sem limite de tamanho total. Um servidor malicioso ou comprometido — ou qualquer um capaz de modificar a resposta em trânsito — pode enviar um corpo gzip/deflate pequeno que esgota o heap. Afetados: <= 3.0.11 e <= 2.16.0. Este está no banco de dados global, então o Dependabot alerta sobre ele.

Os limites não são escritos de forma consistente

Os intervalos misturam >=, <=, <, um = 3.0.12 explícito e um 3.0.0 puro. O mesmo 3.0.11 é seguro para CVE-2026-55688 (< 3.0.11) e afetado para GHSA-v9f2-7rw2-gr2x (<= 3.0.11). A tabela de regras mantém cada operador exatamente como escrito; uma asserção em tools/gen_rules.py e um teste unitário falham se o limite deixar de se comportar assim. Qualquer fragmento de intervalo que o parser não reconheça é um erro — nunca "não afetado".

Onde o repositório e o banco de dados global ambos contêm um aviso mas discordam, a tabela de regras usa a união. Hoje isso é um caso: CVE-2024-53990 — o repositório lista apenas a versão 3.x 3.0.0, o banco de dados global também lista 2.x >= 2.1.0, < 2.12.4. Confiar em apenas um lado subnotificaria.

E ele não escaneia pom.xml — de propósito

O AHC geralmente é uma dependência transitiva, trazida por um SDK ou biblioteca cliente. O artifactId pode nunca aparecer no seu pom.xml. Esta ferramenta lê META-INF/maven/org.asynchttpclient/async-http-client/pom.properties dentro dos jars que realmente são distribuídos — incluindo jars aninhados em um fat-jar do Spring Boot (BOOT-INF/lib) ou um WAR (WEB-INF/lib). A coordenada legada 1.x com.ning:async-http-client tem o mesmo artifactId; ela é listada mas não julgada.

Uso

root@kitploit:~
java -jar async-http-client-check.jar target/                 # scan build output
java -jar async-http-client-check.jar myapp.jar               # fat-jar / war, nested jars included
java -jar async-http-client-check.jar --version-of 3.0.12     # judge a version directly

Cada ocorrência imprime o ID (CVE se houver, caso contrário GHSA), severidade, título, versão corrigida e Dependabot/全局库:未收录 ("não está no banco de dados global") quando aplicável. A saída está em chinês.

Códigos de saída

CódigoSignificado
0Não afetado por nenhum dos 21, e todo arquivo foi realmente lido
1Afetado
2Não foi possível julgar — argumentos inválidos, nenhum jar do AHC encontrado, versão não reconhecida, ou uma versão pré-lançamento que fica fora dos intervalos publicados
4Algum arquivo não pôde ser lido — não é um zip, truncado, ou uma falha de I/O

"Não consegui ler" e "você está seguro" devem ser duas frases diferentes. Um jar legitimamente vazio (um registro EOCD puro de 22 bytes) não é uma falha de leitura. Se um arquivo está afetado e outro é ilegível, o código de saída permanece 1.

O que ele não informa

  • Apenas estes 21 avisos, apenas async-http-client. CVEs do Netty nos jars do Netty dos quais o AHC depende não são cobertos.
  • A alcançabilidade não é verificada. A maioria dos avisos de 2026-08-09 precisa de autenticação, um proxy, WebSocket, cookies ou downloads retomáveis para importar. A severidade é impressa como publicada.
  • A lacuna de informação é temporária. O GitHub pode adicionar os 13 ausentes ao banco de dados global a qualquer momento. tools/recheck_before_publish.py verifica se ela ainda existe.

Como a tabela de regras é construída

src/main/java/dev/mikko/ahccheck/RuleTable.java é gerado, nunca editado à mão:

root@kitploit:~
python tools/gen_rules.py --dry   # run the assertions only
python tools/gen_rules.py         # regenerate the table

Ele lê os avisos em nível de repositório (vulnerable_version_range, patched_versions), procura cada um no banco de dados global, e registra "visível para o Dependabot: sim/não" como um campo de cada regra. Sete asserções devem passar ou nada é escrito: a contagem de avisos e o conjunto exato de 13 ausentes do banco de dados global ainda correspondem à linha de base; as interseções ainda são 3.0.13 / 2.16.1 (e 3.0.12 quando calculadas apenas a partir do banco de dados global); essas versões retornam 200 do Maven Central enquanto uma versão sentinela retorna 404; 3.0.12 ainda atinge pelo menos um aviso de severidade alta e nenhum deles está no banco de dados global; todos os estilos de operador estão presentes e o caso de limite ainda inverte; e a discordância repositório/global ainda é exatamente a conhecida.

Verificações ponta a ponta com jars reais ficam em tools/e2e_real_jars.py (jars reais do Maven Central, incluindo um fat-jar e um WAR). tools/recheck_before_publish.py reverifica a lacuna — banco de dados global, OSV e Maven Central, cada um com um controle positivo e uma sentinela — e sai com código diferente de zero se algo mudou.

Licença

Apache License 2.0 — veja LICENSE.

Baixar ferramenta