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
Static Code Analysis (SAST)Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubabraxas/drupal-move-block-markup

drupal-move-block-markup

Drupal 11.4.8 - 높음 - 원격 - XSS - Move Block 형제 레이블이 @label 이스케이프를 건너뜀

저장소 보기
4일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - drupal-move-block-markup

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  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>(및 기타 관리자 태그)가 살아남습니다.

블록 제목을 HTML로 설정할 수 있는 Layout Builder 편집자가 해당 영역의 다른 블록에서 Move를 여는 또 다른 편집자나 관리자에게 도달합니다. Move 대화상자에서의 저장형 XSS. RCE도 LPE도 아닙니다.

ID아직 CVE 없음
분류저장형 XSS
도달 범위원격 (Layout Builder 블록 구성, 피해자가 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
제품Drupal core
영향받음11.4.8 (61044508071749629aaf3380aa85971e94df9e84)
인증Layout Builder 블록 구성. 피해자가 Move Block 열기.
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 것

작성자: Layout Builder 블록을 배치하거나 구성할 수 있는 사용자(사이트 구성 아님). 피해자: 같은 영역의 다른 블록에서 Move를 여는 또 다른 LB 편집자 또는 관리자.

권한메서드 / 싱크종류랩 입증 또는 추론
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은 이미 이스케이프됨)를 XSS 필터링하지 않습니다. 원시 문자열은 관리자 태그 목록으로 필터링됩니다.

이미 기록된 잘못된 방향: 현재 행을 여전히 원시로 취급(그렇지 않음); 이것이 RCE라고 주장; 유일한 오라클로서의 라이브 Drupal 사이트(잔여물은 이 함수들); 리버스 셸. 연극.

랩

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 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드