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
drupal-htmx-attr — Drupal 11.4.8 - Alta - Remota - XSS - AttributeXss todavía permite atributos HTMX | Kitploit
Herramientas/GitHubGitHub/abraxas/drupal-htmx-attr
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónLabs y Práctica
GitHubabraxas/drupal-htmx-attr

drupal-htmx-attr

Drupal 11.4.8 - Alta - Remota - XSS - AttributeXss todavía permite atributos HTMX

Ver Repositorio
hace 4 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 - drupal-htmx-attr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  drupal-htmx-attr

drupal-htmx-attr

Clase: XSS Almacenado Alcance: Remoto

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-011 cerró los atributos HTMX en Xss::attributes(). Los atributos de enlaces y menús pasan por AttributeXss::sanitizeAttributes, y esa lista de omisión todavía solo descarta style y on*.

Un editor de contenido que puede establecer un campo Link (o un enlace de menú) puede almacenar hx-on-click o data-hx-on-click. Standard más BigPipe carga core/htmx. Cuando un administrador o cualquier otro espectador abre ese nodo y hace clic en el enlace, HTMX ejecuta el JS almacenado en el origen del sitio.

IDsin CVE todavía
ClaseXSS Almacenado (atributos de evento HTMX)
AlcanceRemoto (escritor autenticado de campo Link / menú; la víctima visualiza y hace clic)
CWECWE-79
CVSSAlto: 8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
ProductoDrupal core
Afectado11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
Authusuario autenticado que puede escribir un campo Link (o enlace de menú). La víctima visualiza la página y hace clic.
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Qué puede hacer un atacante

Escritor: un editor de contenido que puede establecer options.attributes del enlace (campo Link, enlace de menú, JSON:API). Víctima: cualquiera cuya página cargue HTMX (Standard + BigPipe carga core/htmx), incluido un administrador del sitio que haga clic en el enlace.

PrivilegioMétodo / rutaTipoProbado en laboratorio o inferido
Persistir atributos de evento HTMX en un enlacePOST /jsonapi/node/article con field_link.options.attributes.hx-on-click y data-hx-on-clickIntegridad del campo almacenadoProbado en laboratorio. JSON:API 201, los atributos almacenados todavía contienen hx-on-click
Imprimir esos atributos en el <a> del nodoLinkFormatter -> AttributeXss::sanitizeAttributesIntegridad del HTMLProbado en laboratorio. GET /node/1 HTML contiene hx-on-click y el marcador window['DRUPAL-HTMX-ATTR-WITNESS']=1
Ejecutar ese JS en el origen de la víctima cuando hace clicHTMX vincula hx-on-*Integridad de la sesión de la víctimaInferido de HTMX + la página cargando core/htmx. El laboratorio no condujo un clic de navegador
Actuar como el espectador (cookie de sesión, clics en la UI de administración)Mismo XSS almacenadoIntegridad de la sesión de la víctimaInferido. El laboratorio se detiene en el atributo que permanece en el HTML
Negativo: Xss::filterXss::filter('<a ... hx-on-click=...>')CerradoProbado en laboratorio cerrado. xss_keeps_hx=False
Escritura no autenticada del enlaceJSON:API sin sesiónCerradoEl laboratorio inició sesión como uid 1 primero. Un extraño sin cuenta no puede establecer el campo
PHP RCE / LPEn/aCerradoEste remanente es JS del navegador, no PHP en el servidor

Mismo remanente del pin: Move Block sibling markup.

Cómo lo encontré

Fijé drupal/drupal 11.4.8 después de SA-CORE-2026-011. Cinco búsquedas: XSS/HTMX, file/MIME/oEmbed, JSON:API/unserialize/SQLi, auth/CSRF/Host, REST/media/Views. El acceso JSON:API, las claves IN de EntityQuery (SA-004), el POI de campo serializado (SA-005) y el Host de rebuild.php (SA-007) permanecen parcheados. La lista de omisión de HTMX llegó solo a Xss.php.

$skip = (
  in_array($attribute_name, ['style', 'srcdoc']) ||
  str_starts_with($attribute_name, 'on') ||
  str_starts_with($attribute_name, 'data-hx') ||
  str_starts_with($attribute_name, 'hx') ||
  str_starts_with($attribute_name, '-') ||
  strlen($attribute_name) > 96
);

Remanente de AttributeXss.php:

$skip = (
  $attribute_name == 'style' ||
  str_starts_with($attribute_name, 'on') ||
  str_starts_with($attribute_name, '-') ||
  strlen($attribute_name) > 96
);

Los llamadores incluyen LinkFormatter.php y MenuLinkContent::getUrlObject().

Caminos equivocados ya registrados: tratar Xss::filter como el remanente (es el control); escritura JSON:API no autenticada; PHP RCE; una reverse shell. Teatro. El oráculo es el atributo que permanece en el HTML del nodo más core/htmx cargado.

Laboratorio

python3 drupal-htmx-attr-Abraxas-Labs.py

o

cd lab
./run.sh

Objetivo solo http://127.0.0.1:19480. drupal:11.4.8-apache en vivo, perfil Standard, escritura JSON:API habilitada para el laboratorio. Proyecto Compose drupal-htmx-attr.

SUCCESS drupal-htmx-attr how=live write=jsonapi nid=1 hx-on-click=kept jsonapi-stored=1 xss-filter=stripped htmx=loaded marker=1 version=11.4.8 DRUPAL-HTMX-ATTR-WITNESS

La solución

Copiar la lista de denegación hx / data-hx / srcdoc en AttributeXss. Incorporarla en Xss como ya dice el docblock de la clase.

Referencias

  • github.com/drupal/drupal etiqueta 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • AttributeXss.php · Xss.php
  • Parcheado cercano: SA-CORE-2026-011
  • Mismo pin: drupal-move-block-markup
  • CWE-79

Licencia

GNU Affero GPL v3.0. Ver LICENSE. Solo laboratorio en loopback. Sin garantía.

Descargar herramienta