Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
drupal-htmx-attr — Drupal 11.4.8 – Hoch – Remote – XSS – AttributeXss erlaubt weiterhin HTMX-Attribute | Kitploit
Tools/GitHubGitHub/abraxas/drupal-htmx-attr
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLabs & Praxis
GitHubabraxas/drupal-htmx-attr

drupal-htmx-attr

Drupal 11.4.8 – Hoch – Remote – XSS – AttributeXss erlaubt weiterhin HTMX-Attribute

Repository anzeigen
15vor 8 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - drupal-htmx-attr

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

Write-up: https://abraxaslabs.tech/research/drupal-htmx-attr

drupal-htmx-attr

Klasse: Gespeichertes XSS Reichweite: Remote

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-011 hat HTMX-Attribute in Xss::attributes() geschlossen. Link- und Menü-Attribute laufen durch AttributeXss::sanitizeAttributes, und diese Skip-Liste entfernt weiterhin nur style und on*.

Ein Content-Editor, der ein Link-Feld (oder einen Menülink) setzen kann, kann hx-on-click oder data-hx-on-click speichern. Standard plus BigPipe lädt core/htmx. Wenn ein Admin oder ein anderer Betrachter diesen Node öffnet und auf den Link klickt, führt HTMX das gespeicherte JS im Ursprung der Website aus.

IDnoch keine CVE
KlasseGespeichertes XSS (HTMX-Event-Attribute)
ReichweiteRemote (authentifizierter Link-Feld-/Menü-Schreiber; Opfer betrachtet und klickt)
CWECWE-79
CVSSHoch: 8.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
ProduktDrupal core
Betroffen11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
Authauthentifizierter Benutzer, der ein Link-Feld (oder einen Menülink) schreiben kann. Opfer betrachtet die Seite und klickt.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Schreiber: ein Content-Editor, der Link-options.attributes setzen kann (Link-Feld, Menülink, JSON:API). Opfer: jeder, dessen Seite HTMX lädt (Standard + BigPipe lädt core/htmx), einschließlich eines Site-Admins, der auf den Link klickt.

BerechtigungMethode / PfadArtIm Lab nachgewiesen oder abgeleitet
HTMX-Event-Attribute auf einem Link persistierenPOST /jsonapi/node/article mit field_link.options.attributes.hx-on-click und data-hx-on-clickIntegrität des gespeicherten FeldsIm Lab nachgewiesen. JSON:API 201, gespeicherte Attribute enthalten weiterhin hx-on-click
Diese Attribute im Node-<a> ausgebenLinkFormatter -> AttributeXss::sanitizeAttributesIntegrität des HTMLIm Lab nachgewiesen. GET /node/1 HTML enthält hx-on-click und den Marker window['DRUPAL-HTMX-ATTR-WITNESS']=1
Dieses JS im Ursprung des Opfers ausführen, wenn es klicktHTMX bindet hx-on-*Integrität der Opfer-SessionAbgeleitet aus HTMX + dem Laden von core/htmx durch die Seite. Das Lab hat keinen Browser-Klick ausgelöst
Als der Betrachter handeln (Session-Cookie, Admin-UI-Klicks)Dasselbe gespeicherte XSSIntegrität der Opfer-SessionAbgeleitet. Das Lab endet beim Verbleib des Attributs im HTML
Negativ: Xss::filterXss::filter('<a ... hx-on-click=...>')GeschlossenIm Lab als geschlossen nachgewiesen. xss_keeps_hx=False
Nicht authentifiziertes Schreiben des LinksJSON:API ohne SessionGeschlossenDas Lab hat sich zuerst als uid 1 angemeldet. Ein Fremder ohne Konto kann das Feld nicht setzen
PHP-RCE / LPEn/aGeschlossenDieser Rest ist Browser-JS, kein PHP auf dem Server

Gleicher Pin-Rest: Move Block sibling markup.

Wie ich es gefunden habe

Ich habe drupal/drupal 11.4.8 nach SA-CORE-2026-011 gepinnt. Fünf Hunts: XSS/HTMX, Datei/MIME/oEmbed, JSON:API/unserialize/SQLi, Auth/CSRF/Host, REST/Media/Views. JSON:API-Zugriff, EntityQuery-IN-Keys (SA-004), serialisiertes-Feld-POI (SA-005) und rebuild.php-Host (SA-007) bleiben gepatcht. Die HTMX-Skip-Liste ist nur in Xss.php gelandet.

$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
);

AttributeXss.php übrig geblieben:

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

Aufrufer sind LinkFormatter.php und MenuLinkContent::getUrlObject().

Bereits festgehaltene Fehlversuche: Xss::filter als Überbleibsel zu behandeln (es ist die Kontrolle); unauthentifizierter JSON:API-Schreibzugriff; PHP-RCE; eine Reverse Shell. Theater. Das Orakel ist das Attribut, das im Knoten-HTML verbleibt, plus geladenes core/htmx.

Lab

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

oder

cd lab
./run.sh

Ziel nur http://127.0.0.1:19480. Live drupal:11.4.8-apache, Standard-Profil, JSON:API-Schreibzugriff für das Lab aktiviert. Compose-Projekt 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

Die Behebung

Kopiere die hx / data-hx / srcdoc-Denylist in AttributeXss. Fasse sie in Xss zusammen, wie es der Klassen-Docblock bereits beschreibt.

Referenzen

  • github.com/drupal/drupal Tag 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • AttributeXss.php · Xss.php
  • In der Nähe gepatcht: SA-CORE-2026-011
  • Gleicher Pin: drupal-move-block-markup
  • CWE-79

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen