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
ats-ipallow-method-case — Apache Traffic Server 10.2.0 - Alta - Remota - Privilegios residuales - Caso de método ip_allow | Kitploit
Herramientas/GitHubGitHub/abraxas/ats-ipallow-method-case
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebSeguridad de RedesLabs y Práctica
GitHubabraxas/ats-ipallow-method-case

ats-ipallow-method-case

Apache Traffic Server 10.2.0 - Alta - Remota - Privilegios residuales - Caso de método ip_allow

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

Abraxas Labs - ats-ipallow-method-case

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-ipallow-method-case

ats-ipallow-method-case

Clase: Privilegio residual Alcance: Remoto

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Los métodos HTTP/1 con mayúsculas y minúsculas mezcladas omiten la denegación por defecto de ip_allow.yaml de PURGE/PUSH/DELETE/TRACE y el TUNNEL hacia el origen remapeado con el uid de ATS. El análisis de YAML y de @method en el remap no distingue mayúsculas de minúsculas. H1 tokeniza y luego aplica strncmp a los bytes de la solicitud y devuelve -1 cuando hay discrepancia de mayúsculas/minúsculas. La inversión de la denegación trata ese token desconocido como permitido. El :method de HTTP/2 no distingue mayúsculas de minúsculas y permanece denegado. PURGE/PUSH de caché siguen necesitando un wksidx conocido, por lo que las mayúsculas y minúsculas mezcladas no purgan ni insertan en la caché.

Esto es un residuo de la ACL de métodos entrantes por defecto, no es CVE-2026-33267 (hop-by-hop) ni la ACL de remap invertida de vacío-no-estándar (cerrada en este pin).

IDaún sin CVE
ClasePrivilegio residual
AlcanceRemoto (HTTP/1 no autenticado desde un cliente no loopback)
CWECWE-178, CWE-863
CVSSAlto: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
ProductoApache Traffic Server
Afectado10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) proxy inverso por defecto
Autenticaciónninguna. ip_allow.yaml por defecto. remap_required: 1 más un map.
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:18710. Imagen ats-10.2.0-lab:local.

Fijé la etiqueta 10.2.0, commit b1df7334b39a878971c376da849e8da4984918b6. Última estable 17 ago 2026. Imagen compilada desde el código fuente, no es un gadget.

Qué puede hacer un atacante

Alcanzar un proxy inverso típico (remap_required: 1 más un map) por HTTP/1 desde una dirección no loopback. 127.0.0.1 permite TODO. plugin.config vacío. ip_allow.yaml por defecto.

MétodoDestinoPrivilegio
HTTP/1 delete / DeLeTe tras el remap desde un sidecar 172.xhdrtoken_method_tokenize y luego process_quick_http_filter y luego TUNNEL METHOD_NOT_SUPPORTED (HdrToken.cc:512-528, HttpTransact.cc:6855-6858)Integridad (probado en laboratorio): origen 200 DELETED ATS-IPALLOW-METHOD-CASE-WITNESS. DELETE en mayúsculas es 403. Método en el origen como uid de ATS.
HTTP/1 tracemismo TUNNELReconocimiento (probado en laboratorio): origen 200 TRACE-OK. ATS no construye el eco de TRACE (wksidx no es TRACE). TRACE en mayúsculas es 403.
HTTP/1 purge / pushTUNNEL de método desconocido, no operación de cachéIntegridad (caché de ATS): cerrado (probado en laboratorio). El origen vio PURGE-ORIGIN / PUSH-ORIGIN. Las operaciones de caché necesitan un wksidx conocido. push_method_enabled por defecto 0.
La misma solicitud con mayúsculas y minúsculas mezcladasun salto extra al origenDisponibilidad (probado en laboratorio): no es la muerte del proceso.

Probado en laboratorio vs inferido: denegación en mayúsculas, túnel DELETE/TRACE con mayúsculas y minúsculas mezcladas, PURGE/PUSH de caché cerrado: laboratorio. DELETE/TRACE en el origen solo si ese origen normaliza las mayúsculas y minúsculas del método (IIS / algunos Java). Los orígenes sensibles a mayúsculas y minúsculas según RFC 9110 (nginx, httpd, Go) responden 501. El origen del laboratorio normaliza las mayúsculas y minúsculas.

Requiere: HTTP/1 de un cliente no loopback. remap_required: 1 más un map. Denegación entrante por defecto de PURGE/PUSH/DELETE/TRACE. El :method de HTTP/2 sin distinción de mayúsculas sigue denegado.

Superficie adyacente que permanece cerrada

SuperficieLaboratorio
DELETE / TRACE con mayúsculas exactas desde 172.x403, origen no alcanzado
:method de HTTP/2 con mayúsculas mixtastokenización sin distinción de mayúsculas, sigue denegado
purge / push con mayúsculas mixtas como operaciones de caché de ATSel origen vio el verbo; la ruta de caché permaneció cerrada
Denegación de destino CONNECT (0.0.0.0/8, RFC1918, link-local, ::ffff:0:0/96)ip_allow.yaml saliente por defecto
Fallo de remap_required: 1404, no un relay abierto
ACL de remap invertida de vacío-no-estándarla corrección del CHANGELOG se mantuvo
CVE-2026-33267 hop-by-hop / eliminación de @cerrado en este pin

Cómo lo encontré

El ip_allow.yaml por defecto es la ACL de métodos remotos estándar. La carga de YAML usa hdrtoken_tokenize (sin distinción de mayúsculas). La inversión de DENY luego establece _method_mask = ALL & ~listed y _deny_nonstandard_methods = true con una lista no estándar vacía (IPAllow.cc:545-548).

El análisis de HTTP/1 tokeniza con hdrtoken_method_tokenize. El DFA no distingue mayúsculas de minúsculas; el helper luego hace strncmp de los bytes de la solicitud contra la cadena conocida y devuelve -1 en caso de discrepancia de mayúsculas:

retval = hdrtoken_tokenize(string, string_len, &string_out);
if (retval >= 0) {
  if (strncmp(string, string_out, string_len) != 0) {
    // Not a case match
    retval = -1;
  }
}

EndRemapRequest solicita isNonstandardMethodAllowed para method == -1 (IPAllow.h:365-376). Conjunto no estándar vacío más denegar-no-estándar es !method_in_set, por lo que las mayúsculas y minúsculas mixtas están permitidas. is_this_http_method_supported(-1) es falso. METHOD_NOT_SUPPORTED establece ProxyMode_t::TUNNELLING y devuelve verdadero. La documentación indica que ATS reenvía los métodos desconocidos al origen. La búsqueda en caché se omite en TUNNELLING.

El :method de HTTP/2 pasa por HTTPHdr::method_set -> hdrtoken_tokenize sin comprobación de mayúsculas y minúsculas. El delete de H2 se convierte en DELETE y se deniega. Este residuo es HTTP/1.

Falsos caminos: tratar los orígenes sensibles a mayúsculas y minúsculas de RFC 9110 como algo que convierte la lista de denegación en un no-op (PURGE/PUSH de la caché de ATS permanecen cerrados; DELETE/TRACE del origen es el residuo); hacer curl desde 127.0.0.1 (permitir TODO); afirmar purga de caché; volver a presentar hop-by-hop.

Descargar herramienta