Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
drupal-move-block-markup — Drupal 11.4.8 - उच्च - रिमोट - XSS - Move Block सहोदर लेबल @label एस्केपिंग छोड़ते हैं | Kitploit
उपकरण/GitHubGitHub/abraxas/drupal-move-block-markup
स्थैतिक कोड विश्लेषण (SAST)भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubabraxas/drupal-move-block-markup

drupal-move-block-markup

Drupal 11.4.8 - उच्च - रिमोट - XSS - Move Block सहोदर लेबल @label एस्केपिंग छोड़ते हैं

रिपॉजिटरी देखें
3 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - drupal-move-block-markup

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

drupal-move-block-markup

Class: Stored XSS Reach: Remote

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-012 ने current Move Block पंक्ति को t('@label (current)') में बदल दिया, जो Html::escape() करता है। उसी region में sibling पंक्तियाँ अभी भी BlockPluginTrait::label() को सीधे MoveBlockForm में #markup पर assign करती हैं। वह label configuration['label'] है, एक raw textfield। Renderer::ensureMarkupIsSafe फिर admin tag list के साथ एक string को XSS-filter करता है, इसलिए एक <b> (और अन्य admin tags) बच जाता है।

एक Layout Builder editor जो किसी block title को HTML पर सेट कर सकता है, उस region में किसी भिन्न block पर Move खोलने वाले किसी अन्य editor या admin तक पहुँचता है। Move dialog में Stored XSS। RCE नहीं और LPE नहीं।

IDअभी तक कोई CVE नहीं
ClassStored XSS
ReachRemote (Layout Builder block configure; victim opens Move Block)
CWECWE-79
CVSSMedium: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
ProductDrupal core
Affected11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
AuthLayout Builder block configure. Victim opens Move Block.
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

एक attacker क्या कर सकता है

Writer: वह user जो Layout Builder blocks को रख या configure कर सकता है (site-config नहीं)। Victim: कोई अन्य LB editor या admin जो उसी region में किसी भिन्न block पर Move खोलता है।

PrivilegeMethod / sinkKindLab-proven or inferred
Move dialog sibling row में attacker HTML प्रिंट करना$label['#markup'] = $plugin->label(); फिर ensureMarkupIsSafeIntegrity of HTMLLab-proven। Sibling HTML <b class="lb-sib">DRUPAL-MOVE-BLOCK-MARKUP-WITNESS</b> है
Admin-tag markup (<b>, और शेष Xss::getAdminTagList) बनाए रखनाstring #markup को admin list के साथ XSS-filter किया जाता है, escape नहींIntegrity of HTML<b> के लिए Lab-proven
Layout Builder origin में victim editor के रूप में Session / actionsउस dialog में Stored XSSIntegrity of victim sessionInferred। Lab sibling cell में raw HTML पर रुक जाता है
Negative: current rowt('@label (current)', ...)ClosedLab-proven। &lt;em class="lb-cur"&gt;...
Negative: @label के माध्यम से siblingpatched gadget pathClosedLab-proven। &lt;b class="lb-sib"&gt;...

इस leftover पर बंद: live Drupal site install (यह lab एक gadget है); measured HTTP oracle के रूप में Layout Builder UI session theft; RCE; LPE। Unauthenticated visitors Move Block नहीं खोल सकते।

Same pin leftover: AttributeXss HTMX attrs।

मैंने इसे कैसे खोजा

मैंने SA-CORE-2026-012 के बाद Drupal 11.4.8 pin किया। Advisory ने current block title को बंद कर दिया। MoveBlockForm.php 210-218:

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

BlockPluginTrait::label() set होने पर configuration['label'] लौटाता है। Renderer::ensureMarkupIsSafe MarkupInterface (@label पहले से escaped) को XSS-filter नहीं करता। एक raw string को admin tag list के साथ filter किया जाता है।

पहले से दर्ज गलत मोड़: current row को अभी भी raw मानना (यह नहीं है); इसे RCE बताना; एकमात्र oracle के रूप में live Drupal site (leftover ये functions हैं); एक reverse shell। Theatre।

Lab

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

या

cd lab
./run.sh

लक्ष्य केवल http://127.0.0.1:19490। 11.4.8 functions का faithful gadget (MoveBlockForm leftover की copy, FormattableMarkup, ensureMarkupIsSafe, Xss::filter)। live drupal:11.4.8 site नहीं। अंतिम पंक्ति 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

समाधान

हर row के लिए @label (या Html::escape) का उपयोग करें, केवल current block के लिए नहीं।

संदर्भ

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

License

GNU Affero GPL v3.0। देखें LICENSE। केवल Loopback lab। कोई warranty नहीं।

टूल डाउनलोड करें