Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-92392 — Comprueba las compilaciones locales de curl/libcurl en busca de exposición a use-after-free en la carga HTTP/2 de CVE-2026-92392, con inventario pasivo, escaneo de imágenes montadas y una sonda PoC de loopback acotada. | Kitploit
Herramientas/GitHubGitHub/ashu7ank/cve-2026-92392
Herramientas DefensivasEscáneres de VulnerabilidadesSeguridad de ContenedoresAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesRecopilación de InformaciónVirtualización de SeguridadFuzzing
GitHubashu7ank/cve-2026-92392

CVE-2026-92392

Comprueba las compilaciones locales de curl/libcurl en busca de exposición a use-after-free en la carga HTTP/2 de CVE-2026-92392, con inventario pasivo, escaneo de imágenes montadas y una sonda PoC de loopback acotada.

4hace 22 díasAún no revisado

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 →
Ver Repositorio
Compartir

Comprobador de exposición y POC de CVE-2026-92392 en curl/libcurl

cve_2026_92392_check.py evalúa artefactos locales de curl y libcurl en busca de CVE-2026-92392, un use-after-free en la carga HTTP/2 de curl/libcurl.

Admite inventario local pasivo, evaluación de banners proporcionados, escaneo de imágenes montadas sin ejecución y una sonda de protocolo HTTP/2 de loopback acotada. La sonda es defensiva y no está weaponizada. No contiene payload de comandos, shellcode, manipulación de direcciones de memoria, lógica de fuga de información ni payload de RCE.

La sonda activa se enlaza únicamente a 127.0.0.1, no acepta ninguna URL de destino remoto ni host, y ejecuta únicamente el binario local de curl seleccionado.

Qué establece este comprobador

El comprobador separa cuatro niveles de evidencia distintos:

Nivel de evidenciaQué estableceQué no establece
Clasificación de compilaciónSi un artefacto curl/libcurl con versión cualificada está fuera del rango afectado upstream, afectado upstream con estado de parche del proveedor desconocido, o afectado confirmado usando la evidencia de estado de parche proporcionadaSi una aplicación realmente utiliza la ruta de carga HTTP/2 afectada
Contexto de exposición en tiempo de ejecuciónSi los datos de la aplicación proporcionados indican que las cargas HTTP/2 pueden alcanzar un endpoint controlado por el atacanteSi la vulnerabilidad fue desencadenada
Estímulo de protocoloSi el arnés de loopback local entregó ambas variantes de reset documentadas con dos cargas en una misma conexión HTTP/2Un use-after-free, la causa de un fallo o la ejecución de código
Resultado del sanitizador atribuido a la CVESi la secuencia candidata, un heap-use-after-free de AddressSanitizer, una identidad de artefacto afectado upstream y una pila HTTP/2 coincidente fueron todos observadosLa fiabilidad o la explotabilidad práctica en otro sistema

Una ejecución limpia, una ejecución de protocolo incompleta o una ejecución del sanitizador sin fallos no demuestran que una compilación sea segura.

Resumen de la vulnerabilidad

CVE-2026-92392 afecta al manejo de cargas HTTP/2 de curl/libcurl. Durante una carga, una compilación afectada puede procesar un RST_STREAM HTTP/2 que transporte REFUSED_STREAM o HTTP_1_1_REQUIRED. Los datos de carga almacenados en búfer pueden entonces ser analizados como una nueva solicitud después de que el estado HTTP/2 de la transferencia original fuera desacoplado. Una llamada de retorno HTTP/2 posterior puede desreferenciar un puntero Curl_easy obsoleto.

La comparación REA utilizada para revisar este comprobador confirmó la diferencia relevante en el orden de limpieza:

  1. El artefacto afectado llama a Curl_conn_ev_data_done, procesa los handles pendientes y solo entonces llama a Curl_req_done.
  2. Curl_req_done llega a req_flush, mientras que la ruta de data-done de HTTP/2 ya ha limpiado el contexto del stream.
  3. Los datos de carga restantes en búfer pueden crear un stream HTTP/2 posterior asociado con el mismo puntero de easy-handle sin procesar.
  4. La implementación corregida ejecuta Curl_req_done antes de Curl_conn_ev_data_done, eliminando ese orden obsoleto.

Esta es evidencia de implementación que respalda el modelo de prueba del comprobador. El estado de parche del proveedor sigue requiriendo verificación independiente.

Versiones upstream afectadas

El aviso upstream identifica la implementación vulnerable como introducida en curl 8.12.0. El comprobador clasifica las versiones upstream de la siguiente manera:

Condición de la versiónClasificación
Anterior a 8.12.0NOT AFFECTED
8.12.0 hasta 8.22.0, excluyendo backports corregidosAfectada upstream
Rama 8.14 en 8.14.3 o posteriorBackport corregido
Rama 8.16 en 8.16.2 o posteriorBackport corregido
Rama 8.20 en 8.20.2 o posteriorBackport corregido
8.23.0 o posteriorNOT AFFECTED
Desarrollo, snapshot, nightly o versión ambiguaINDETERMINATE

Un proveedor puede aplicar el backport de la corrección sin cambiar la cadena de versión upstream de curl. Por lo tanto, una versión upstream afectada es evidencia de inventario, no prueba concluyente de que una compilación del proveedor no esté parcheada.

Use --patch-state solo cuando el estado de corrección semántica downstream haya sido verificado mediante avisos del proveedor, changelogs de paquetes, comparación de código fuente u otro método fiable a nivel de artefacto.

valor de --patch-stateSignificado
unknownPredeterminado. Una versión upstream afectada produce UPSTREAM-AFFECTED VERSION.
absentEl operador ha verificado de forma independiente que la corrección downstream está ausente. Una compilación afectada con capacidad HTTP/2 produce AFFECTED BUILD.
presentEl operador ha verificado de forma independiente que la corrección semántica downstream está presente. Esta es una afirmación del operador, no una prueba automática de equivalencia binaria con la corrección upstream de curl.

Requisitos

  • Python 3.10 o superior.
  • Sin dependencias de Python más allá de la biblioteca estándar.
  • Un ejecutable de curl local para --poc.
  • Soporte HTTP/2 confirmado para un sondeo activo significativo.
  • Una compilación de curl instrumentada con AddressSanitizer para --poc-proof asan.
  • El comando openssl solo cuando se usa --tls.
  • Un ejecutable de curl nativo ELF o Mach-O cualificado por producto para el sondeo activo.

El modo PoC activo rechaza scripts, wrappers, ejecutables nativos no identificados y binarios PE/Windows. La evaluación pasiva sigue disponible para banners y sistemas de archivos montados.

Inicio rápido

Inspeccionar el binario de curl encontrado en PATH:

python3 cve_2026_92392_check.py

Emitir JSON:

python3 cve_2026_92392_check.py --json

Ejecutar las autopruebas internas:

python3 cve_2026_92392_check.py --self-test
python3 -O cve_2026_92392_check.py --self-test

Inspeccione un ejecutable curl seleccionado y la biblioteca compartida libcurl:

python3 cve_2026_92392_check.py \
  --curl-binary /opt/curl/bin/curl \
  --libcurl-path /opt/curl/lib/libcurl.so \
  --json

Evalúa un banner de curl de confianza sin ejecutar un binario:

python3 cve_2026_92392_check.py \
  --version-string 'curl 8.12.0 libcurl/8.12.0 nghttp2/1.61.0' \
  --json

Una versión simple como 8.12.0 no se acepta como evidencia verificada de la identidad de curl/libcurl.

Flujo de trabajo de inventario remoto

El verificador deliberadamente no contacta hosts remotos. Obtenga el banner a través de un canal administrativo autorizado, guárdelo localmente y luego evalúelo localmente:

ssh [email protected] 'curl --version' > host-curl-version.txt

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use unknown \
  --untrusted-upload unknown \
  --https-certificate unknown \
  --json

Si la revisión de la aplicación o una traza de confianza establece que las cargas usan HTTP/2, pueden alcanzar un endpoint controlado por el atacante y aceptan su certificado HTTPS, proporcione esos hechos explícitamente:

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use yes \
  --untrusted-upload yes \
  --https-certificate yes \
  --patch-state unknown \
  --json

Para h2c en texto claro, use --https-certificate not-applicable.

--http2-use yes identifica el uso de HTTP/2 en tiempo de ejecución. No prueba que el artefacto se haya compilado con soporte para HTTP/2. De manera similar, --untrusted-upload yes describe el flujo de datos de la aplicación, mientras que --https-certificate yes registra la condición de confianza HTTPS por separado.

Evaluación de imágenes montadas

Descargar herramienta