Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
async-http-client-check — Espace de travail IA auto-hébergé avec agents, compétences et outils (Gmail, Calendar) qui fonctionne entièrement avec vos propres clés API de fournisseur (BYOK). Apportez vos propres clés — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI. | Kitploit
Outils/GitHubGitHub/xiaoqimikko/async-http-client-check
Outils DéfensifsAnalyse StatiqueScanners de VulnérabilitésAnalyse des VulnérabilitésDevSecOpsUtilitaires et FrameworksSécurité de la Chaîne Logistique
GitHubxiaoqimikko/async-http-client-check

async-http-client-check

Espace de travail IA auto-hébergé avec agents, compétences et outils (Gmail, Calendar) qui fonctionne entièrement avec vos propres clés API de fournisseur (BYOK). Apportez vos propres clés — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI.

Voir le dépôt
il y a 11h 11mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

async-http-client-check

Vérificateur hors ligne pour les 21 avis de sécurité au niveau du dépôt de org.asynchttpclient:async-http-client (AsyncHttpClient, « AHC »). Il vous indique auxquels votre jar est réellement exposé, signale ceux que Dependabot et OSV ne peuvent pas voir, et donne une réponse par ligne : 3.0.13 (3.x) / 2.16.1 (2.x).

Jar unique, zéro dépendance à l'exécution, entièrement hors ligne, Java 17+.


Pourquoi cet outil existe

1. 17 avis ont été publiés le 2026-08-09 — la base de données globale en contient 4

Le 2026-08-09, les mainteneurs d'AsyncHttpClient ont publié 17 avis de sécurité sur le dépôt du projet lui-même (AsyncHttpClient/async-http-client → Security → Advisories).

Dependabot et OSV ne lisent pas cette page. Ils lisent la . Au 2026-09-19, cette base ne contient que des 17 (, , , , tous ajoutés le 2026-09-17). Les autres renvoient depuis ; deux de ces 13 ont même des identifiants CVE (, ).

base de données globale d'avis 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

En incluant les quatre avis plus anciens (CVE-2024-53990, CVE-2026-40490, CVE-2026-45300, CVE-2026-55688), le dépôt en liste 21 ; la base de données globale en contient 8.

2. La version que Dependabot vous dit d'installer est elle-même affectée par 5 d'entre eux

Calculez « la version qui règle tout » à partir de la base de données globale et la réponse en 3.x est 3.0.12. OSV est d'accord : POST /v1/query pour 3.0.12 renvoie zéro vulnérabilité.

Les avis du dépôt disent que 3.0.12 se trouve encore dans la plage de cinq d'entre eux :

AvisSévéritéQuoiNécessite
GHSA-rqf5-2wxv-rjf4élevéeUn challenge Digest sans nonce utilisable reçoit une réponse Authorization: Basic, c'est-à-dire le mot de passe en base64Un Realm Digest (authentification serveur ou proxy)
GHSA-jmqq-x5g9-9p2wélevéeLorsqu'une requête est rejouée vers un hôte différent, la requête / les identifiants du premier hôte partent vers le second hôteUn rejeu vers un autre hôte (un ResponseFilter de basculement ou le chemin de nouvelle tentative sur IOException) et des identifiants ou un proxy
GHSA-vvp4-63h8-v5pmmoyenneLes connexions NTLM / Negotiate sont réutilisées entre principauxNTLM ou Negotiate avec des identifiants par requête
GHSA-f9m8-cv68-674wmoyenneLe Domain du cookie n'est pas vérifié par rapport à la liste des suffixes publics (Domain=co.uk)Un CookieStore partagé entre origines
GHSA-qhv6-3pmh-95q4faibleqop="auth-int" désactive l'authentification mutuelle Digest (3.0.12 uniquement)Authentification Digest

Soyez précis au sujet des deux avis de sévérité élevée : ils divulguent des identifiants, mais uniquement si vous avez configuré des identifiants (un Realm, Digest/NTLM, ou un proxy) — et GHSA-jmqq nécessite en plus un rejeu vers un hôte différent. Un client effectuant de simples GET non authentifiés n'y est pas exposé. Cet outil ne sait pas comment vous utilisez le client ; il rapporte ce que dit la plage de versions et vous laisse décider.

Les mainteneurs le disent eux-mêmes dans le texte de CVE-2026-85721 :

Notez que 3.0.12 est elle-même affectée par un problème distinct, GHSA-rqf5-2wxv-rjf4 … Passez à 3.0.13 pour bénéficier des deux correctifs.

Donc en 3.x : Dependabot dit 3.0.12, et après votre mise à niveau il affiche du vert. La vraie réponse est 3.0.13. En 2.x, la réponse est 2.16.1 dans les deux cas — mais 13 des avis derrière cela restent invisibles pour votre scanner.

3. La bombe de décompression ne nécessite aucune configuration

CVE-2026-85721 (élevée) est celui qui s'applique aux paramètres par défaut : la décompression automatique des réponses est activée par défaut, et le chemin HTTP/1.1 gonfle le corps sans limite sur la taille totale. Un serveur malveillant ou compromis — ou toute personne capable de modifier la réponse en transit — peut envoyer un petit corps gzip/deflate qui épuise le tas. Affectés : <= 3.0.11 et <= 2.16.0. Celui-ci est dans la base de données globale, donc Dependabot alerte bien dessus.

Les bornes ne sont pas écrites de manière cohérente

Les plages mélangent >=, <=, <, un = 3.0.12 explicite, et un 3.0.0 nu. Le même 3.0.11 est sûr pour CVE-2026-55688 (< 3.0.11) et affecté pour GHSA-v9f2-7rw2-gr2x (<= 3.0.11). La table de règles conserve chaque opérateur exactement tel qu'écrit ; une assertion dans tools/gen_rules.py et un test unitaire échouent si la borne cesse de se comporter ainsi. Tout fragment de plage que l'analyseur ne reconnaît pas est une erreur — jamais « non affecté ».

Lorsque le dépôt et la base de données globale portent tous deux un avis mais sont en désaccord, la table de règles prend l'union. Aujourd'hui, c'est un seul cas : CVE-2024-53990 — le dépôt ne liste que la version 3.x 3.0.0, la base de données globale liste aussi la 2.x >= 2.1.0, < 2.12.4. Se fier à un seul côté sous-signalerait.

Et il ne scanne pas pom.xml — volontairement

AHC est généralement une dépendance transitive, tirée par un SDK ou une bibliothèque cliente. L'artifactId peut ne jamais apparaître dans votre pom.xml. Cet outil lit META-INF/maven/org.asynchttpclient/async-http-client/pom.properties à l'intérieur des jars qui sont réellement livrés — y compris les jars imbriqués dans un fat-jar Spring Boot (BOOT-INF/lib) ou un WAR (WEB-INF/lib). La coordonnée héritée 1.x com.ning:async-http-client a le même artifactId ; elle est listée mais non jugée.

Utilisation

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

Chaque correspondance affiche l'ID (CVE s'il y en a un, sinon GHSA), la sévérité, le titre, la version corrigée, et Dependabot/全局库:未收录 (« absent de la base de données globale ») le cas échéant. La sortie est en chinois.

Codes de sortie

CodeSignification
0Non affecté par aucun des 21, et chaque fichier a bien été lu
1Affecté
2Impossible de juger — arguments invalides, aucun jar AHC trouvé, version non reconnue, ou version préliminaire hors des plages publiées
4Un fichier n'a pas pu être lu — pas un zip, tronqué, ou une erreur d'E/S

« Je n'ai pas pu le lire » et « vous êtes en sécurité » doivent être deux phrases différentes. Un jar légitimement vide (un simple enregistrement EOCD de 22 octets) n'est pas un échec de lecture. Si un fichier est affecté et qu'un autre est illisible, le code de sortie reste 1.

Ce qu'il ne vous dit pas

  • Uniquement ces 21 avis, uniquement async-http-client. Les CVE Netty dans les jars Netty dont dépend AHC ne sont pas couvertes.
  • L'atteignabilité n'est pas vérifiée. La plupart des avis du 2026-08-09 nécessitent une authentification, un proxy, WebSocket, des cookies ou des téléchargements reprenables pour avoir un impact. La sévérité est affichée telle que publiée.
  • L'écart d'information est temporaire. GitHub peut ajouter les 13 manquants à la base de données globale à tout moment. tools/recheck_before_publish.py vérifie s'il existe encore.

Comment la table de règles est construite

src/main/java/dev/mikko/ahccheck/RuleTable.java est généré, jamais modifié à la main :

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

Il lit les avis au niveau du dépôt (vulnerable_version_range, patched_versions), recherche chacun dans la base de données globale, et enregistre « visible par Dependabot : oui/non » comme champ de chaque règle. Sept assertions doivent passer sinon rien n'est écrit : le nombre d'avis et l'ensemble exact des 13 manquants dans la base de données globale correspondent toujours à la référence ; les intersections sont toujours 3.0.13 / 2.16.1 (et 3.0.12 lorsqu'elles sont calculées à partir de la base de données globale seule) ; ces versions renvoient 200 depuis Maven Central tandis qu'une version sentinelle renvoie 404 ; 3.0.12 touche toujours au moins un avis de sévérité élevée et aucun de ceux-ci n'est dans la base de données globale ; tous les styles d'opérateurs sont présents et le cas limite bascule toujours ; et le désaccord dépôt/global est toujours exactement celui connu.

Les vérifications de bout en bout sur de vrais jars se trouvent dans tools/e2e_real_jars.py (de vrais jars de Maven Central, y compris un fat-jar et un WAR). tools/recheck_before_publish.py revérifie l'écart — base de données globale, OSV et Maven Central, chacun avec un contrôle positif et une sentinelle — et se termine avec un code non nul si quoi que ce soit a bougé.

Licence

Apache License 2.0 — voir LICENSE.

Télécharger l’outil