
Espacio de trabajo de IA autoalojado con agentes, habilidades y herramientas (Gmail, Calendar) que se ejecuta completamente con las claves API de tu propio proveedor (BYOK). Trae tus propias claves — Groq, OpenRouter, NVIDIA, Hugging Face, Google AI.
Comprobador offline de los 26 avisos de seguridad a nivel de repositorio de
org.asynchttpclient:async-http-client (AsyncHttpClient, "AHC").
Te indica a cuáles está realmente expuesto tu jar, señala los que Dependabot y OSV
no pueden ver, y da una respuesta por línea:
3.0.142.16.1
sigue afectada por 5 avisos que no se corregirán. La única solución es pasar a 3.0.14.Un solo jar, cero dependencias en tiempo de ejecución, totalmente offline, Java 17+.
Corrección (2026-10-12, v0.2.0). La v0.1.0 de esta herramienta y del README decía: "la base de datos global solo lista 4 de los 17", "Dependabot te dice que instales 3.0.12", "la respuesta real es
3.0.13/2.16.1". Las tres cosas eran ciertas el 2026-09-19 y ninguna lo es ya: upstream publicó 5 avisos más el 2026-09-24 (corregidos en3.0.14, no corregidos en 2.x), y el 2026-10-08 la base de datos global de GitHub incorporó 9 entradas más. La v0.1.0 informa3.0.13y2.16.1como limpias — no lo son. Usa la v0.2.0.
El 2026-09-24 los mantenedores publicaron cinco avisos. Cada uno termina su sección Patches con la misma frase:
La línea 2.x está al final de su vida útil y no recibirá una corrección. Actualiza a 3.0.14.
Los cinco listan un rango 2.x que termina en 2.16.1 — la versión 2.x más reciente en Maven Central — con
una versión corregida vacía:
| Aviso | Gravedad | Rango 2.x | Qué | Requiere |
|---|---|---|---|---|
CVE-2026-107230 | alta | >= 2.0.0, <= 2.16.1 | Las conexiones agrupadas se siguen compartiendo entre inicios de sesión NTLM / Negotiate / proxy (corrección incompleta de GHSA-vvp4-63h8-v5pm) | NTLM, Kerberos o SPNEGO contra un origen o proxy, o cualquier inicio de sesión en un proxy SOCKS / CONNECT, y peticiones bajo identidades distintas a través de un mismo cliente. Basic y Digest contra un origen no se ven afectados |
CVE-2026-107227 | alta | >= 2.2.0, <= 2.16.1 | Los mensajes permessage-deflate de WebSocket se descomprimen sin límite de tamaño | setEnablewebSocketCompression(true) — desactivado por defecto — y un servidor WebSocket no confiable o en texto plano |
CVE-2026-107228 | media | >= 2.1.0, <= 2.16.1 | Una cabecera Cookie establecida con setHeader / addHeader es reemplazada por las cookies del almacén de cookies (evasión de la corrección de CVE-2024-53990) | El almacén de cookies, activado por defecto, que contenga cualquier cookie para ese origen |
CVE-2026-107226 | media | >= 2.1.0, <= 2.16.1 | Una cookie recibida por HTTP en texto plano puede implantar, sobrescribir o eliminar una cookie Secure establecida por HTTPS | Un almacén de cookies compartido entre orígenes en texto plano y HTTPS del mismo sitio |
CVE-2026-107229 | media | >= 2.16.0, <= 2.16.1 | Comprobaciones de origen incompletas en el almacén de cookies por defecto (sección privada de sufijo público, hosts IP, …) | Un cliente que alcanza varios orígenes, uno de ellos influenciado por un atacante |
Sé preciso con los dos de gravedad alta: ninguno aplica a un cliente que hace peticiones simples con
la configuración por defecto. CVE-2026-107227 requiere la compresión WebSocket activada; CVE-2026-107230
requiere NTLM / Kerberos / SPNEGO o un proxy con autenticación. Los tres de gravedad media son los que
tocan el almacén de cookies por defecto. Esta herramienta no sabe cómo usas el cliente; informa lo que
dice el rango de versiones y deja la decisión en tus manos.
Lo que sí cambia: "actualiza a 2.16.1" ya no es una respuesta. Una versión 2.x anterior como
2.12.3 puede subirse a 2.16.1 para eliminar los avisos que sí tienen corrección en 2.x — y después
de eso sigue dentro de los cinco rangos anteriores (actualizar desde una versión inferior a 2.16.0 incluso añade
CVE-2026-107229, cuyo rango empieza en 2.16.0). La herramienta imprime exactamente eso, y sale con 1
para 2.16.1.
Dependabot y OSV no leen la página Security → Advisories del propio proyecto. Leen la
base de datos global de avisos de GitHub. A fecha de 2026-10-12, GET /advisories/<GHSA> devuelve 404 para
9 de los 26 avisos del repositorio:
CVE-2026-107281, CVE-2026-107279, CVE-2026-107232,
CVE-2026-107284, CVE-2026-102740, CVE-2026-102737, CVE-2026-85718, CVE-2026-85719) —
dos de ellos calificados como altos por los mantenedores (CVE-2026-107232, CVE-2026-85719), ambos sobre
credenciales de proxy;CVE-2026-107229).La base de datos ha ido poniéndose al día — 4 del lote de agosto llegaron el 2026-09-17, 5 más el
2026-10-08 — así que este número seguirá cambiando. Cada coincidencia se imprime con
Dependabot/全局库:已收录 / 未收录 ("in / not in the global database"), y la herramienta imprime la
fecha en que se generó su tabla. tools/recheck_before_publish.py te indica si la brecha sigue
existiendo hoy.
Para 3.x la consecuencia práctica es pequeña ahora: calculado solo a partir de la base de datos global, el
objetivo también es 3.0.14. Para las versiones <= 3.0.11 los dos avisos altos faltantes simplemente no se
te muestran.
Otra diferencia que vale la pena conocer: CVE-2026-107282 está calificado como alto por los mantenedores y
crítico en la base de datos global. La tabla de reglas conserva la calificación de los mantenedores.
CVE-2026-85721 (alto) es el que aplica a la configuración predeterminada: la descompresión automática de respuestas
está activada por defecto, y la ruta HTTP/1.1 infla el cuerpo sin límite en el tamaño total.
Un servidor malicioso o comprometido — o cualquiera capaz de modificar la respuesta en tránsito — puede enviar un
cuerpo gzip/deflate pequeño que agote el heap. Afectados: <= 3.0.11 y <= 2.16.0.
Este sí está en la base de datos global, así que Dependabot sí alerta sobre él.
Los rangos mezclan >=, <=, <, un = 3.0.12 explícito y un 3.0.0 sin operador. El mismo 3.0.11 es
seguro para CVE-2026-55688 (< 3.0.11) y afectado para CVE-2026-107232
(<= 3.0.11). La tabla de reglas conserva cada operador exactamente como está escrito; una aserción en
tools/gen_rules.py y una prueba unitaria fallan si el límite deja de comportarse así. Cualquier fragmento de rango
que el analizador no reconozca es un error — nunca "no afectado". Una versión corregida vacía
se acepta solo cuando el propio texto del aviso indica que la línea está al final de su vida útil; se
almacena como "sin corrección en esta línea", nunca como "no afectado".
Cuando el repositorio y la base de datos global contienen ambos un aviso pero discrepan en el rango, la
tabla de reglas toma la unión. Hoy: CVE-2024-53990 (el repositorio solo lista la versión 3.x
3.0.0, la base de datos global también lista 2.x >= 2.1.0, < 2.12.4) y CVE-2026-107230 (mismo
rango, escrito <= 3.0.13 en un lado y < 3.0.14 en el otro).
pom.xml — a propósitoAHC suele ser una dependencia transitiva, incorporada por un SDK o una biblioteca cliente. El artifactId
puede no aparecer nunca en tu pom.xml. Esta herramienta lee
META-INF/maven/org.asynchttpclient/async-http-client/pom.properties dentro de los jars que realmente
se distribuyen — incluidos los jars anidados en un fat-jar de Spring Boot (BOOT-INF/lib) o un WAR (WEB-INF/lib).
La coordenada heredada 1.x com.ning:async-http-client tiene el mismo artifactId; aparece listada pero no
se evalúa.