Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
async-http-client-check — Workspace AI self-hosted con agenti, competenze e strumenti (Gmail, Calendar) che funziona interamente sulle tue chiavi API del provider (BYOK). Porta le tue chiavi — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI. | Kitploit
Strumenti/GitHubGitHub/xiaoqimikko/async-http-client-check
Strumenti DifensiviAnalisi StaticaScanner di VulnerabilitàAnalisi delle VulnerabilitàDevSecOpsUtilità e FrameworkSicurezza della Supply Chain
GitHubxiaoqimikko/async-http-client-check

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

async-http-client-check

Workspace AI self-hosted con agenti, competenze e strumenti (Gmail, Calendar) che funziona interamente sulle tue chiavi API del provider (BYOK). Porta le tue chiavi — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI.

Vedi Repository
11h 11m faNon ancora revisionato
Condividi

async-http-client-check

Checker offline per i 21 advisory di sicurezza a livello di repository di org.asynchttpclient:async-http-client (AsyncHttpClient, "AHC"). Ti dice a quali di essi il tuo jar è effettivamente esposto, segnala quelli che Dependabot e OSV non riescono a vedere, e fornisce una risposta per riga: 3.0.13 (3.x) / 2.16.1 (2.x).

Singolo jar, zero dipendenze a runtime, completamente offline, Java 17+.


Perché esiste

1. Il 2026-08-09 sono stati pubblicati 17 advisory — il database globale ne ha 4

Il 2026-08-09 i maintainer di AsyncHttpClient hanno pubblicato 17 advisory di sicurezza sul repository del progetto stesso (AsyncHttpClient/async-http-client → Security → Advisories).

Dependabot e OSV non leggono quella pagina. Leggono il . Al 2026-09-19 quel database contiene solo dei 17 (, , , , tutti aggiunti il 2026-09-17). Gli altri restituiscono da ; due di questi 13 hanno persino CVE ID (, ).

database globale degli advisory di 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

Includendo i quattro advisory più vecchi (CVE-2024-53990, CVE-2026-40490, CVE-2026-45300, CVE-2026-55688), il repository ne elenca 21; il database globale ne ha 8.

2. La versione che Dependabot ti dice di installare è essa stessa affetta da 5 di essi

Calcola "la versione che risolve tutto" dal database globale e la risposta per 3.x è 3.0.12. OSV concorda: POST /v1/query per 3.0.12 restituisce zero vulnerabilità.

Gli advisory del repository dicono che 3.0.12 rientra ancora nel range di cinque:

AdvisorySeveritàCosaRichiede
GHSA-rqf5-2wxv-rjf4highA una sfida Digest senza un nonce utilizzabile si risponde con Authorization: Basic, cioè la password in base64Un Realm Digest (autenticazione server o proxy)
GHSA-jmqq-x5g9-9p2whighQuando una richiesta viene riprodotta verso un host diverso, la richiesta / le credenziali del primo host vanno al secondo hostReplay verso un altro host (un ResponseFilter di failover o il percorso di retry su IOException) e credenziali o un proxy
GHSA-vvp4-63h8-v5pmmediumLe connessioni NTLM / Negotiate vengono riutilizzate tra principal diversiNTLM o Negotiate con credenziali per-richiesta
GHSA-f9m8-cv68-674wmediumIl Domain del cookie non viene verificato rispetto alla public suffix list (Domain=co.uk)Un CookieStore condiviso tra origini
GHSA-qhv6-3pmh-95q4lowqop="auth-int" disattiva l'autenticazione mutua Digest (solo 3.0.12)Autenticazione Digest

Sii preciso sui due high: fanno trapelare credenziali, ma solo se hai configurato credenziali (un Realm, Digest/NTLM, o un proxy) — e GHSA-jmqq richiede inoltre un replay verso un host diverso. Un client che esegue semplici GET non autenticate non è esposto ad essi. Questo tool non sa come usi il client; riporta ciò che dice il range di versioni e lascia la decisione a te.

I maintainer lo dicono essi stessi nel testo di CVE-2026-85721:

Nota che 3.0.12 è essa stessa affetta da un problema separato, GHSA-rqf5-2wxv-rjf4 … Aggiorna a 3.0.13 per ottenere entrambe le correzioni.

Quindi su 3.x: Dependabot dice 3.0.12, e dopo l'aggiornamento mostra verde. La risposta reale è 3.0.13. Su 2.x la risposta è 2.16.1 in entrambi i casi — ma 13 degli advisory dietro di essa sono ancora invisibili al tuo scanner.

3. La bomba di decompressione non richiede configurazione

CVE-2026-85721 (high) è quello che si applica alle impostazioni predefinite: la decompressione automatica delle risposte è attiva per impostazione predefinita, e il percorso HTTP/1.1 gonfia il body senza limite sulla dimensione totale. Un server malevolo o compromesso — o chiunque sia in grado di modificare la risposta in transito — può inviare un piccolo body gzip/deflate che esaurisce l'heap. Affetti: <= 3.0.11 e <= 2.16.0. Questo è nel database globale, quindi Dependabot avvisa su di esso.

I confini non sono scritti in modo coerente

I range mescolano >=, <=, <, un esplicito = 3.0.12, e un semplice 3.0.0. Lo stesso 3.0.11 è sicuro per CVE-2026-55688 (< 3.0.11) e affetto per GHSA-v9f2-7rw2-gr2x (<= 3.0.11). La tabella delle regole mantiene ogni operatore esattamente come scritto; un'asserzione in tools/gen_rules.py e un unit test falliscono se il confine smette di comportarsi così. Qualsiasi frammento di range che il parser non riconosce è un errore — mai "non affetto".

Dove il repository e il database globale portano entrambi un advisory ma sono in disaccordo, la tabella delle regole prende l'unione. Oggi è un solo caso: CVE-2024-53990 — il repository elenca solo la versione 3.x 3.0.0, il database globale elenca anche la 2.x >= 2.1.0, < 2.12.4. Fidarsi di un solo lato sottostimerebbe.

E non scansiona pom.xml — di proposito

AHC è di solito una dipendenza transitiva, tirata dentro da un SDK o da una libreria client. L'artifactId potrebbe non apparire mai nel tuo pom.xml. Questo tool legge META-INF/maven/org.asynchttpclient/async-http-client/pom.properties dentro i jar che effettivamente vengono distribuiti — inclusi i jar annidati in un fat-jar Spring Boot (BOOT-INF/lib) o in un WAR (WEB-INF/lib). La coordinata legacy 1.x com.ning:async-http-client ha lo stesso artifactId; è elencata ma non giudicata.

Utilizzo

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

Ogni hit stampa l'ID (CVE se presente, altrimenti GHSA), la severità, il titolo, la versione corretta, e Dependabot/全局库:未收录 ("non nel database globale") dove applicabile. L'output è in cinese.

Codici di uscita

CodiceSignificato
0Non affetto da nessuno dei 21, e ogni file è stato effettivamente letto
1Affetto
2Impossibile giudicare — argomenti errati, nessun jar AHC trovato, versione non riconosciuta, o una versione pre-release che cade al di fuori dei range pubblicati
4Qualche file non è stato leggibile — non uno zip, troncato, o un errore di I/O

"Non sono riuscito a leggerlo" e "sei al sicuro" devono essere due frasi diverse. Un jar legittimamente vuoto (un semplice record EOCD di 22 byte) non è un errore di lettura. Se un file è affetto e un altro è illeggibile, il codice di uscita resta 1.

Cosa non ti dice

  • Solo questi 21 advisory, solo async-http-client. Le CVE di Netty nei jar Netty da cui AHC dipende non sono coperte.
  • La raggiungibilità non è verificata. La maggior parte degli advisory del 2026-08-09 richiede autenticazione, un proxy, WebSocket, cookie o download ripristinabili per avere rilevanza. La severità è stampata come pubblicata.
  • Il divario informativo è temporaneo. GitHub potrebbe aggiungere i 13 mancanti al database globale in qualsiasi momento. tools/recheck_before_publish.py verifica se esiste ancora.

Come viene costruita la tabella delle regole

src/main/java/dev/mikko/ahccheck/RuleTable.java è generato, mai modificato a mano:

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

Legge gli advisory a livello di repository (vulnerable_version_range, patched_versions), cerca ciascuno nel database globale, e registra "visibile a Dependabot: sì/no" come campo di ogni regola. Sette asserzioni devono passare o nulla viene scritto: il conteggio degli advisory e l'esatto insieme dei 13 mancanti dal database globale corrispondono ancora alla baseline; le intersezioni sono ancora 3.0.13 / 2.16.1 (e 3.0.12 quando calcolate dal solo database globale); quelle versioni restituiscono 200 da Maven Central mentre una versione sentinella restituisce 404; 3.0.12 colpisce ancora almeno un advisory high e nessuno di quelli è nel database globale; tutti gli stili di operatore sono presenti e il caso limite si inverte ancora; e il disaccordo repository/globale è ancora esattamente quello noto.

I controlli end-to-end su jar reali si trovano in tools/e2e_real_jars.py (jar reali da Maven Central, inclusi un fat-jar e un WAR). tools/recheck_before_publish.py riverifica il divario — database globale, OSV e Maven Central, ciascuno con un controllo positivo e una sentinella — ed esce con codice non-zero se qualcosa è cambiato.

Licenza

Apache License 2.0 — vedi LICENSE.

Scarica lo strumento