
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.
Vérificateur hors ligne pour les 26 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.142.16.1
est toujours affectée par 5 avis qui ne seront pas corrigés. La seule correction consiste à passer à 3.0.14.Jar unique, aucune dépendance à l'exécution, entièrement hors ligne, Java 17+.
Correction (2026-10-12, v0.2.0). La v0.1.0 de cet outil et du README indiquait : « la base de données globale ne liste que 4 des 17 », « Dependabot vous dit d'installer 3.0.12 », « la vraie réponse est
3.0.13/2.16.1». Ces trois affirmations étaient vraies le 2026-09-19 et aucune ne l'est plus : l'amont a publié 5 avis supplémentaires le 2026-09-24 (corrigés dans3.0.14, non corrigés sur 2.x), et le 2026-10-08 la base de données globale GitHub a récupéré 9 entrées de plus. La v0.1.0 signale3.0.13et2.16.1comme propres — elles ne le sont pas. Utilisez la v0.2.0.
Le 2026-09-24, les mainteneurs ont publié cinq avis. Chacun termine sa section Patches par la même phrase :
La branche 2.x est en fin de vie et ne recevra pas de correctif. Passez à 3.0.14.
Les cinq listent une plage 2.x qui se termine à 2.16.1 — la version 2.x la plus récente sur Maven Central — avec
une version corrigée vide :
| Avis | Gravité | Plage 2.x | Quoi | Nécessite |
|---|---|---|---|---|
CVE-2026-107230 | élevée | >= 2.0.0, <= 2.16.1 | Les connexions mutualisées sont toujours partagées entre les authentifications NTLM / Negotiate / proxy (correctif incomplet de GHSA-vvp4-63h8-v5pm) | NTLM, Kerberos ou SPNEGO vers une origine ou un proxy, ou toute authentification sur un proxy SOCKS / CONNECT, et des requêtes sous différentes identités via un même client. Basic et Digest vers une origine ne sont pas affectés |
CVE-2026-107227 | élevée | >= 2.2.0, <= 2.16.1 | Les messages WebSocket permessage-deflate sont décompressés sans limite de taille | setEnablewebSocketCompression(true) — désactivé par défaut — et un serveur WebSocket non fiable ou en clair |
CVE-2026-107228 | moyenne | >= 2.1.0, <= 2.16.1 | Un en-tête Cookie défini avec setHeader / addHeader est remplacé par les cookies du magasin de cookies (contournement du correctif CVE-2024-53990) | Le magasin de cookies, activé par défaut, contenant un cookie quelconque pour cette origine |
CVE-2026-107226 | moyenne | >= 2.1.0, <= 2.16.1 | Un cookie reçu via HTTP en clair peut implanter, écraser ou supprimer un cookie Secure défini via HTTPS | Un magasin de cookies partagé entre des origines en clair et HTTPS du même site |
CVE-2026-107229 | moyenne | >= 2.16.0, <= 2.16.1 | Vérifications d'origine incomplètes dans le magasin de cookies par défaut (section privée des suffixes publics, hôtes IP, …) | Un client atteignant plusieurs origines, dont l'une est influencée par un attaquant |
Soyez précis au sujet des deux avis de gravité élevée : aucun ne s'applique à un client effectuant des requêtes simples avec
les paramètres par défaut. CVE-2026-107227 nécessite l'activation de la compression WebSocket ; CVE-2026-107230
nécessite NTLM / Kerberos / SPNEGO ou un proxy authentifiant. Les trois avis de gravité moyenne sont ceux qui
touchent le magasin de cookies par défaut. Cet outil ne sait pas comment vous utilisez le client ; il rapporte ce que
la plage de versions indique et vous laisse décider.
Ce que cela change : « passez à 2.16.1 » n'est plus une réponse. Une version 2.x plus ancienne telle que
2.12.3 peut être mise à niveau vers 2.16.1 pour éliminer les avis qui disposent bien d'un correctif 2.x — et après
cela, elle reste dans les cinq plages ci-dessus (une mise à niveau depuis une version inférieure à 2.16.0 ajoute même
CVE-2026-107229, dont la plage commence à 2.16.0). L'outil affiche exactement cela, et renvoie le code 1
pour 2.16.1.
Dependabot et OSV ne lisent pas la page Security → Advisories du projet. Ils lisent la
base de données globale d'avis GitHub. Au 2026-10-12, GET /advisories/<GHSA> renvoie 404 pour
9 des 26 avis du dépôt :
CVE-2026-107281, CVE-2026-107279, CVE-2026-107232,
CVE-2026-107284, CVE-2026-102740, CVE-2026-102737, CVE-2026-85718, CVE-2026-85719) —
deux d'entre elles classées élevées par les mainteneurs (CVE-2026-107232, CVE-2026-85719), toutes deux concernant
les identifiants de proxy ;CVE-2026-107229).La base de données rattrape son retard — 4 du lot d'août sont arrivées le 2026-09-17, 5 autres le
2026-10-08 — donc ce nombre continuera d'évoluer. Chaque correspondance est affichée avec
Dependabot/全局库:已收录 / 未收录 (« dans / hors de la base de données globale »), et l'outil affiche la
date à laquelle sa table a été générée. tools/recheck_before_publish.py vous indique si l'écart subsiste
encore aujourd'hui.
Pour 3.x, la conséquence pratique est désormais faible : calculée à partir de la base de données globale seule, la
cible est également 3.0.14. Pour les versions <= 3.0.11, les deux avis élevés manquants ne vous sont simplement pas
montrés.
Une autre différence à connaître : CVE-2026-107282 est classée élevée par les mainteneurs et
critique dans la base de données globale. La table de règles conserve la classification des mainteneurs.
CVE-2026-85721 (élevée) est celle 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 de 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é : <= 3.0.11 et <= 2.16.0.
Celle-ci est dans la base de données globale, donc Dependabot émet bien une alerte à son sujet.
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 CVE-2026-107232
(<= 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é ». Une version corrigée
vide n'est acceptée que lorsque le texte de l'avis indique lui-même que la branche est en fin de vie ; elle est
stockée comme « pas de correctif sur cette branche », jamais comme « non affecté ».
Lorsque le dépôt et la base de données globale portent tous deux un avis mais divergent sur la plage, la
table de règles prend l'union. Aujourd'hui : 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) et CVE-2026-107230 (même
plage, écrite <= 3.0.13 d'un côté et < 3.0.14 de l'autre).
pom.xml — volontairement