Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
drupal-move-block-markup — Drupal 11.4.8 - Alta - Remoto - XSS - Le etichette dei blocchi adiacenti ignorano l'escaping di @label | Kitploit
Strumenti/GitHubGitHub/abraxas/drupal-move-block-markup
Analisi Statica del Codice (SAST)Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration Testing
GitHubabraxas/drupal-move-block-markup

drupal-move-block-markup

Drupal 11.4.8 - Alta - Remoto - XSS - Le etichette dei blocchi adiacenti ignorano l'escaping di @label

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
4 giorni faNon ancora revisionato

Abraxas Labs - drupal-move-block-markup

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  drupal-move-block-markup

drupal-move-block-markup

Classe: XSS memorizzato Portata: Remota

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-012 ha cambiato la riga corrente di Move Block in t('@label (current)'), che viene sottoposta a Html::escape(). Le righe adiacenti nella stessa regione assegnano ancora BlockPluginTrait::label() direttamente a #markup in MoveBlockForm. Quell'etichetta è configuration['label'], un campo di testo grezzo. Renderer::ensureMarkupIsSafe applica poi un filtro XSS a una stringa con la lista dei tag amministratore, quindi un <b> (e altri tag amministratore) sopravvive.

Un editor di Layout Builder che può impostare il titolo di un blocco su HTML raggiunge un altro editor o amministratore che apre Move su un blocco diverso in quella regione. XSS memorizzato nella finestra di dialogo Move. Non è RCE né LPE.

IDnessuna CVE al momento
ClasseXSS memorizzato
PortataRemota (configurazione blocco Layout Builder; la vittima apre Move Block)
CWECWE-79
CVSSMedio: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
ProdottoDrupal core
Affetto11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
AuthConfigurazione blocco Layout Builder. La vittima apre Move Block.
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Scrittore: utente che può posizionare o configurare blocchi Layout Builder (non la configurazione del sito). Vittima: un altro editor LB o amministratore che apre Move su un blocco diverso nella stessa regione.

PrivilegioMetodo / sinkTipoProvato in lab o dedotto
Stampare l'HTML dell'attaccante nella riga adiacente della finestra di dialogo Move$label['#markup'] = $plugin->label(); poi ensureMarkupIsSafeIntegrità dell'HTMLProvato in lab. L'HTML adiacente è <b class="lb-sib">DRUPAL-MOVE-BLOCK-MARKUP-WITNESS</b>
Mantenere il markup dei tag amministratore (<b>, e il resto di Xss::getAdminTagList)la stringa #markup viene filtrata XSS con la lista amministratore, non sottoposta a escapeIntegrità dell'HTMLProvato in lab per <b>
Sessione / azioni come l'editor vittima nell'origine Layout BuilderXSS memorizzato in quella finestra di dialogoIntegrità della sessione della vittimaDedotto. Il lab si ferma all'HTML grezzo nella cella adiacente
Negativo: riga correntet('@label (current)', ...)ChiusoProvato in lab. &lt;em class="lb-cur"&gt;...
Negativo: adiacente tramite @labelpercorso del gadget correttoChiusoProvato in lab. &lt;b class="lb-sib"&gt;...

Chiuso su questo residuo: installazione di un sito Drupal live (questo lab è un gadget); furto di sessione tramite UI di Layout Builder come oracolo HTTP misurato; RCE; LPE. I visitatori non autenticati non possono aprire Move Block.

Stesso pin residuo: AttributeXss HTMX attrs.

Come l'ho trovato

Ho fissato Drupal 11.4.8 dopo SA-CORE-2026-012. L'advisory ha chiuso il titolo del blocco corrente. MoveBlockForm.php 210-218:

if ($is_current_block) {
  $label['#markup'] = $this->t('@label (current)', ['@label' => $plugin->label()]);
  // ...
}
else {
  $label['#markup'] = $plugin->label();
}

BlockPluginTrait::label() restituisce configuration['label'] quando impostato. Renderer::ensureMarkupIsSafe non applica il filtro XSS a MarkupInterface (@label è già sottoposto a escape). Una stringa grezza viene filtrata con la lista dei tag amministratore.

Vicoli ciechi già registrati: considerare la riga corrente ancora grezza (non lo è); sostenere che si tratti di RCE; un sito Drupal live come unico oracolo (il residuo sono queste funzioni); una reverse shell. Teatro.

Lab

python3 drupal-move-block-markup-Abraxas-Labs.py

oppure

cd lab
./run.sh

Target solo http://127.0.0.1:19490. Gadget fedele delle funzioni di 11.4.8 (copia del residuo di MoveBlockForm, FormattableMarkup, ensureMarkupIsSafe, Xss::filter). Non è un sito drupal:11.4.8 live. L'ultima riga usa how=gadget.

SUCCESS drupal-move-block-markup how=gadget sibling-raw-tag=yes current-escaped=yes patched-sibling-escaped=yes DRUPAL-MOVE-BLOCK-MARKUP-WITNESS

La correzione

Usare @label (o Html::escape) per ogni riga, non solo per il blocco corrente.

Riferimenti

  • github.com/drupal/drupal tag 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • MoveBlockForm.php · BlockPluginTrait.php
  • Correlato corretto: SA-CORE-2026-012
  • Stesso pin: drupal-htmx-attr
  • CWE-79

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento