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 एस्केपिंग छोड़ते हैं

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - drupal-move-block-markup

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

राइट-अप: https://abraxaslabs.tech/research/drupal-move-block-markup

drupal-move-block-markup

वर्ग: स्टोर्ड XSS पहुँच: रिमोट

Drupal core 11.4.8 (61044508) - Drupal

SA-CORE-2026-012 ने वर्तमान Move Block पंक्ति को t('@label (current)') में बदल दिया, जो Html::escape() करता है। उसी क्षेत्र की सहोदर पंक्तियाँ अभी भी BlockPluginTrait::label() को सीधे MoveBlockForm में #markup पर असाइन करती हैं। वह लेबल configuration['label'] है, जो एक कच्चा टेक्स्टफ़ील्ड है। इसके बाद Renderer::ensureMarkupIsSafe एक स्ट्रिंग को एडमिन टैग सूची के साथ XSS-फ़िल्टर करता है, इसलिए एक <b> (और अन्य एडमिन टैग) बच जाता है।

एक Layout Builder संपादक जो किसी ब्लॉक के शीर्षक को HTML पर सेट कर सकता है, उसी क्षेत्र में किसी भिन्न ब्लॉक पर Move खोलने वाले किसी अन्य संपादक या एडमिन तक पहुँच जाता है। Move डायलॉग में स्टोर्ड XSS। RCE नहीं और LPE नहीं।

IDअभी तक कोई CVE नहीं
वर्गस्टोर्ड XSS
पहुँचरिमोट (Layout Builder ब्लॉक कॉन्फ़िगर; पीड़ित Move Block खोलता है)
CWECWE-79
CVSSमध्यम: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
उत्पादDrupal core
प्रभावित11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
प्रमाणीकरणLayout Builder ब्लॉक कॉन्फ़िगर। पीड़ित Move Block खोलता है।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1

एक हमलावर क्या कर सकता है

लेखक: वह उपयोगकर्ता जो Layout Builder ब्लॉक रख या कॉन्फ़िगर कर सकता है (साइट-कॉन्फ़िग नहीं)। पीड़ित: एक अन्य LB संपादक या एडमिन जो उसी क्षेत्र में किसी भिन्न ब्लॉक पर Move खोलता है।

विशेषाधिकारविधि / सिंकप्रकारलैब-प्रमाणित या अनुमानित
Move डायलॉग की सहोदर पंक्ति में हमलावर का HTML प्रिंट करना$label['#markup'] = $plugin->label(); फिर ensureMarkupIsSafeHTML की अखंडतालैब-प्रमाणित। सहोदर HTML है <b class="lb-sib">DRUPAL-MOVE-BLOCK-MARKUP-WITNESS</b>
एडमिन-टैग मार्कअप (<b>, और Xss::getAdminTagList का शेष) बनाए रखनास्ट्रिंग #markup को एडमिन सूची के साथ XSS-फ़िल्टर किया जाता है, एस्केप नहींHTML की अखंडता<b> के लिए लैब-प्रमाणित
Layout Builder ओरिजिन में पीड़ित संपादक के रूप में सत्र / क्रियाएँउस डायलॉग में स्टोर्ड XSSपीड़ित सत्र की अखंडताअनुमानित। लैब सहोदर सेल में कच्चे HTML पर रुकती है
नकारात्मक: वर्तमान पंक्तिt('@label (current)', ...)बंदलैब-प्रमाणित। &lt;em class="lb-cur"&gt;...
नकारात्मक: @label के माध्यम से सहोदरपैच किया गया गैजेट पथबंदलैब-प्रमाणित। &lt;b class="lb-sib"&gt;...

इस शेष पर बंद: लाइव Drupal साइट इंस्टॉल (यह लैब एक गैजेट है); मापे गए HTTP ओरेकल के रूप में Layout Builder UI सत्र चोरी; RCE; LPE। अनप्रमाणित आगंतुक Move Block नहीं खोल सकते।

वही पिन शेष: AttributeXss HTMX attrs।

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

मैंने SA-CORE-2026-012 के बाद Drupal 11.4.8 को पिन किया। सलाहकार ने वर्तमान ब्लॉक शीर्षक को बंद कर दिया। MoveBlockForm.php 210-218:

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

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

पहले से दर्ज गलत मोड़: वर्तमान row को अभी भी raw मानना (यह नहीं है); इसे RCE बताना; एक लाइव Drupal साइट को एकमात्र oracle मानना (बचा हुआ हिस्सा ये functions हैं); एक reverse shell। नाटक।

Lab

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

या

cd lab
./run.sh

केवल http://127.0.0.1:19490 को लक्षित करें। 11.4.8 फ़ंक्शंस का निष्ठावान गैजेट (MoveBlockForm का बचा हुआ कॉपी, FormattableMarkup, ensureMarkupIsSafe, Xss::filter)। यह लाइव drupal:11.4.8 साइट नहीं है। अंतिम पंक्ति 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

समाधान

प्रत्येक पंक्ति के लिए @label (या Html::escape) का उपयोग करें, न कि केवल वर्तमान ब्लॉक के लिए।

संदर्भ

  • github.com/drupal/drupal टैग 11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
  • MoveBlockForm.php · BlockPluginTrait.php
  • निकटवर्ती पैच किया गया: SA-CORE-2026-012
  • समान पिन: drupal-htmx-attr
  • CWE-79

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE. केवल लूपबैक लैब। कोई वारंटी नहीं।

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