Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
async-http-client-check — 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. | Kitploit
Herramientas/GitHubGitHub/xiaoqimikko/async-http-client-check
Herramientas DefensivasAnálisis EstáticoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesDevSecOpsUtilidades y FrameworksSeguridad de Cadena de Suministro
GitHubxiaoqimikko/async-http-client-check

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

async-http-client-check

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.

Ver Repositorio
hace 10h 27mAún no revisado
Compartir

async-http-client-check

Comprobador offline de los 21 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.13 (3.x) / 2.16.1 (2.x).

Un solo jar, cero dependencias en tiempo de ejecución, totalmente offline, Java 17+.


Por qué existe esto

1. Se publicaron 17 avisos el 2026-08-09 — la base de datos global tiene 4 de ellos

El 2026-08-09 los mantenedores de AsyncHttpClient publicaron 17 avisos de seguridad en el propio repositorio del proyecto (AsyncHttpClient/async-http-client → Security → Advisories).

Dependabot y OSV no leen esa página. Leen la . A fecha de 2026-09-19 esa base de datos contiene solo de los 17 (, , , , todos añadidos el 2026-09-17). Los otros devuelven en ; dos de esos 13 incluso tienen IDs CVE (, ).

base de datos global de avisos de 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

Incluyendo los cuatro avisos más antiguos (CVE-2024-53990, CVE-2026-40490, CVE-2026-45300, CVE-2026-55688), el repositorio lista 21; la base de datos global tiene 8.

2. La versión que Dependabot te dice que instales está ella misma afectada por 5 de ellos

Calcula "la versión que lo soluciona todo" a partir de la base de datos global y la respuesta para 3.x es 3.0.12. OSV coincide: POST /v1/query para 3.0.12 devuelve cero vulnerabilidades.

Los avisos del repositorio dicen que 3.0.12 sigue dentro del rango de cinco:

AvisoGravedadQuéRequiere
GHSA-rqf5-2wxv-rjf4altaUn desafío Digest sin un nonce utilizable se responde con Authorization: Basic, es decir, la contraseña en base64Un Realm Digest (autenticación de servidor o proxy)
GHSA-jmqq-x5g9-9p2waltaCuando una petición se reenvía a un host diferente, la petición / credenciales del primer host van al segundo hostReenvío a otro host (un ResponseFilter de failover o la ruta de reintento por IOException) y credenciales o un proxy
GHSA-vvp4-63h8-v5pmmediaLas conexiones NTLM / Negotiate se reutilizan entre principalsNTLM o Negotiate con credenciales por petición
GHSA-f9m8-cv68-674wmediaEl Domain de la cookie no se comprueba contra la lista de sufijos públicos (Domain=co.uk)Un CookieStore compartido entre orígenes
GHSA-qhv6-3pmh-95q4bajaqop="auth-int" desactiva la autenticación mutua Digest (solo 3.0.12)Autenticación Digest

Sé preciso con las dos de gravedad alta: filtran credenciales, pero solo si configuraste credenciales (un Realm, Digest/NTLM o un proxy) — y GHSA-jmqq además necesita un reenvío a un host diferente. Un cliente que hace GETs simples sin autenticar no está expuesto a ellas. Esta herramienta no sabe cómo usas el cliente; informa de lo que dice el rango de versiones y te deja la decisión a ti.

Los propios mantenedores lo dicen en el texto de CVE-2026-85721:

Ten en cuenta que 3.0.12 está ella misma afectada por un problema aparte, GHSA-rqf5-2wxv-rjf4 … Actualiza a 3.0.13 para incorporar ambas correcciones.

Así que en 3.x: Dependabot dice 3.0.12, y después de actualizar se muestra en verde. La respuesta real es 3.0.13. En 2.x la respuesta es 2.16.1 en cualquier caso — pero 13 de los avisos que hay detrás siguen siendo invisibles para tu escáner.

3. La bomba de descompresión no necesita configuración

CVE-2026-85721 (alta) es la que se aplica a la configuración por defecto: la descompresión automática de respuestas está activada por defecto, y la ruta HTTP/1.1 infla el cuerpo sin límite de 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. Esta sí está en la base de datos global, así que Dependabot alerta sobre ella.

Los límites no están escritos de forma consistente

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 GHSA-v9f2-7rw2-gr2x (<= 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".

Cuando el repositorio y la base de datos global contienen ambos un aviso pero no coinciden, la tabla de reglas toma la unión. Hoy es un caso: 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. Confiar solo en un lado infravaloraría el riesgo.

Y no escanea pom.xml — a propósito

AHC suele ser una dependencia transitiva, incorporada por un SDK o una librería cliente. El artifactId puede que nunca aparezca 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; se lista pero no se evalúa.

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 coincidencia imprime el ID (CVE si lo hay, si no GHSA), la gravedad, el título, la versión corregida y Dependabot/全局库:未收录 ("no está en la base de datos global") cuando corresponde. La salida está en chino.

Códigos de salida

CódigoSignificado
0No afectado por ninguno de los 21, y todos los archivos se leyeron realmente
1Afectado
2No se pudo evaluar — argumentos incorrectos, no se encontró ningún jar de AHC, versión no reconocida, o una versión preliminar que queda fuera de los rangos publicados
4Algún archivo no se pudo leer — no es un zip, está truncado, o un fallo de E/S

"No pude leerlo" y "estás a salvo" deben ser dos frases diferentes. Un jar legítimamente vacío (un registro EOCD simple de 22 bytes) no es un fallo de lectura. Si un archivo está afectado y otro es ilegible, el código de salida sigue siendo 1.

Lo que no te dice

  • Solo estos 21 avisos, solo async-http-client. Los CVE de Netty en los jars de Netty de los que depende AHC no están cubiertos.
  • No se comprueba la alcanzabilidad. La mayoría de los avisos del 2026-08-09 necesitan autenticación, un proxy, WebSocket, cookies o descargas reanudables para importar. La gravedad se imprime tal como se publicó.
  • La brecha de información es temporal. GitHub puede añadir los 13 que faltan a la base de datos global en cualquier momento. tools/recheck_before_publish.py comprueba si todavía existe.

Cómo se construye la tabla de reglas

src/main/java/dev/mikko/ahccheck/RuleTable.java está generado, nunca editado a mano:

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

Lee los avisos a nivel de repositorio (vulnerable_version_range, patched_versions), busca cada uno en la base de datos global, y registra "visible para Dependabot: sí/no" como un campo de cada regla. Deben pasar siete aserciones o no se escribe nada: el recuento de avisos y el conjunto exacto de 13 que faltan en la base de datos global siguen coincidiendo con la línea base; las intersecciones siguen siendo 3.0.13 / 2.16.1 (y 3.0.12 cuando se calcula solo a partir de la base de datos global); esas versiones devuelven 200 desde Maven Central mientras que una versión centinela devuelve 404; 3.0.12 sigue alcanzando al menos un aviso de gravedad alta y ninguno de ellos está en la base de datos global; todos los estilos de operador están presentes y el caso límite sigue invirtiéndose; y la discrepancia entre repositorio y base de datos global sigue siendo exactamente la conocida.

Las comprobaciones de extremo a extremo con jars reales están en tools/e2e_real_jars.py (jars reales de Maven Central, incluidos un fat-jar y un WAR). tools/recheck_before_publish.py vuelve a verificar la brecha — base de datos global, OSV y Maven Central, cada uno con un control positivo y un centinela — y sale con un código distinto de cero si algo ha cambiado.

Licencia

Apache License 2.0 — consulta LICENSE.

Descargar herramienta