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
afterimage — Investigación de diferencias de parches para problemas publicados de urllib3: versiones fijadas, arneses offline originales, comportamiento antes/después y controles benignos. | Kitploit
Herramientas/GitHubGitHub/ssh-pur66/afterimage
Análisis EstáticoAnálisis de VulnerabilidadesExplotaciónSeguridad WebPapers e InvestigaciónAprendizaje y Educación
GitHubssh-pur66/afterimage

afterimage

Investigación de diferencias de parches para problemas publicados de urllib3: versiones fijadas, arneses offline originales, comportamiento antes/después y controles benignos.

Ver Repositorio
88hace 6 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 →
Sitio web
Compartir

Afterimage

Creado y mantenido por Sergio Rodriguez (SSH-PuR66). Los arneses de experimentación y el análisis son míos; las vulnerabilidades publicadas, el código de urllib3 y las correcciones upstream conservan su atribución original.

Método de investigación del autor · Arnés de redirección · Estudio de chunk-framing

Lee el parche. Reconstruye el fallo. Prueba ambos lados.

Una redirección cambia el destino mientras tres cabeceras sensibles permanecen adjuntas. Un analizador de framing acepta entrada que la siguiente versión rechaza. Afterimage convierte correcciones de protocolo publicadas en pequeños experimentos de antes/después inspeccionables.

Construí los arneses y los casos de control en torno a versiones de urllib3 fijadas y sin modificar. Cada resultado registra el hash del paquete, el comportamiento capturado, el límite del fixture y la atribución upstream.

EstudioVersiones comparadasCorpus registradoInspeccionar
Límite de cabeceras en redirección · CVE-2026-44431urllib3 2.6.3 / 2.7.012 casos, incluido el comportamiento afectado y controles benignosResultados · Arnés
Framing de chunks · CVE-2026-97689urllib3 2.7.0 / 2.8.032 casos offline acotadosMétodo y resultados

Tipo de investigación: reproducción independiente de problemas publicados. Límite medido: manejo de argumentos de la biblioteca y comportamiento de framing en memoria. La explotabilidad en aplicaciones y el agotamiento de recursos quedan fuera de estos resultados de fixtures.

Abrir el estudio publicado

El límite de cabeceras en redirección

CVE-2026-44431 · urllib3 2.6.3 → 2.7.0 · reproducido el 27 de septiembre de 2026

Una solicitud lleva tres cabeceras sensibles a un origen. Una redirección cambia el destino. ¿La siguiente solicitud las sigue llevando?

Esta regresión independiente ejecuta la implementación real de redirección de dos versiones exactas de urllib3. La versión 2.6.3 conserva las tres cabeceras a través de la API de bajo nivel afectada. La versión 2.7.0 las elimina. Una cabecera benigna sobrevive, y las solicitudes ordinarias siguen funcionando.

Resultado medido

Fixtureurllib3 2.6.3urllib3 2.7.0
Redirección cross-origin de bajo nivel3 cabeceras sensibles conservadas0 conservadas
Mismo caso con nombres en minúsculas3 conservadas0 conservadas
Control de API de alto nivel0 conservadas0 conservadas
Respuesta 200 directa3 conservadas según lo previsto3 conservadas según lo previsto
Redirección deshabilitada explícitamenteUna llamada; 302 devueltoUna llamada; 302 devuelto
Conjunto de eliminación personalizado añade marcador benignoLas 4 cabeceras conservadasLas 4 eliminadas

12/12 expectativas de escenario superadas. Cada escenario también verifica el estado de la respuesta, el número de llamadas de transporte, el conjunto inicial de cabeceras, el resultado de la cabecera benigna y que las cabeceras del llamador no fueron mutadas. El resultado vulnerable es una línea base esperada, no una comprobación de seguridad superada.

Los resultados legibles por máquina incluyen los argumentos capturados, los hashes exactos de los wheels, el runtime, los hashes del código de prueba, la atribución y el momento de la reproducción.

El problema publicado

El aviso upstream, publicado el 7 de mayo de 2026, identifica un problema de exposición de información en la ruta de redirección de bajo nivel con proxy de urllib3. Enumera las versiones >=1.23, <2.7.0 como afectadas. Llamar a ProxyManager.connection_from_url(...).urlopen(..., assert_same_host=False) podía llevar cabeceras sensibles configuradas a una solicitud redirigida hacia otro origen. La API de alto nivel del manager ya las eliminaba.

La corrección upstream aplica Retry.remove_headers_on_redirect antes de la solicitud recursiva de bajo nivel. Nuestro caso de cabeceras en minúsculas sigue la atención de la regresión upstream al uso de mayúsculas y minúsculas en los nombres de cabecera. El caso de eliminación personalizada verifica que la regla respeta el conjunto configurado, más allá de solo los tres nombres predeterminados.

El aviso acredita a christos-cantina-security como reportero, a illia-v como coordinador y a sethmlarson como revisor de la remediación. La contribución de Sergio Rodriguez aquí es el arnés offline independiente y el análisis de antes/después. Esta es una reproducción de su CVE publicado.

Reproducir el fixture

Utilice Python 3.10 o posterior. No es necesario pip install ni un entorno virtual: cada versión se importa directamente desde su wheel de Python puro en un subproceso aislado nuevo.

Desde la raíz del repositorio del portafolio:

python -B ./labs/cve-replay/run_replay.py --fetch
python -B ./labs/cve-replay/run_replay.py

El primer comando descarga los dos wheels exactos en el directorio ignorado .cache/wheels/ del laboratorio y verifica sus hashes SHA-256 contra el manifiesto. El segundo comando utiliza esa caché sin descargar. Para una copia del código fuente independiente, ejecute python -B run_replay.py --fetch, y luego el mismo comando sin --fetch. --cache acepta un directorio de caché local diferente.

Dónde comienza el mock

HTTPConnectionPool._make_request se reemplaza con un transporte de dos respuestas: un 302 con una ubicación fija, luego un 200. El fixture captura los argumentos que llegan a ese límite. El análisis, la política de reintentos, el filtrado de cabeceras y el manejo recursivo de redirecciones de urllib3 se ejecutan sin cambios desde el wheel seleccionado.

Todos los destinos son nombres reservados fijos .invalid; todos los valores de cabecera comienzan con DUMMY. La construcción de sockets y las funciones DNS lanzan una excepción inmediatamente. La sonda de capacidad IPv6 en tiempo de importación de la biblioteca es denegada y registrada por separado; los escenarios de replay no intentan ninguna operación de red. No hay ningún servidor escuchando ni objetivo en vivo.

Esto valida el manejo de argumentos en las redirecciones. No mide el tráfico de proxy de extremo a extremo. La versión 2.7.0 es la primera corrección para este CVE en particular; esta comparación histórica no es una recomendación para seleccionarla por encima de versiones más recientes con soporte.

Fuentes y atribución

  • Aviso del mantenedor / CVE-2026-44431
  • Corrección upstream y pruebas de regresión
  • Código fuente de la versión afectada
  • Código fuente de la versión corregida
  • Notas de la versión urllib3 2.7.0
  • URLs de paquetes fijados, metadatos de PyPI y hashes
Descargar herramienta