Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-7867-disk2root — CVE-2026-7867(udisks2)에 대한 무기화된 로컬 권한 상승 익스플로잇으로, as-user 마운트 스푸핑을 사용하여 PolicyKit을 우회하고 루트 셸을 획득합니다. | Kitploit
도구/GitHubGitHub/azqzazq1/cve-2026-7867-disk2root
Privilege EscalationVulnerability AnalysisExploitationPost-ExploitationPenetration TestingLearning & EducationRed TeamingBinary ExploitationLabs & Practice
GitHubazqzazq1/cve-2026-7867-disk2root

CVE-2026-7867-disk2root

CVE-2026-7867(udisks2)에 대한 무기화된 로컬 권한 상승 익스플로잇으로, as-user 마운트 스푸핑을 사용하여 PolicyKit을 우회하고 루트 셸을 획득합니다.

184개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기





Filesystem.Mount → as-user 스푸핑 → 권한 부여 우회 → 루트 컨텍스트 마운트 → LPE


개요

CVE-2026-7867은 Filesystem.Mount D-Bus 메서드, as-user 옵션, fstab 관리 마운트 흐름 및 결함이 있는 권한 부여 처리와 관련된 udisks2의 로컬 권한 상승 취약점입니다.

이 비공개 저장소에는 통제된 실험실 환경에서 해당 문제를 검증하는 데 사용된 기술 연구 노트와 PoC 스크립트가 포함되어 있습니다.

이 취약점은 다음 연구자에 의해 발견 및 보고되었습니다:

Azizcan Daştan azqzazq1
Özlem Ozan oz7oz7

이 문제에는 다음 CVE ID가 할당되었습니다:

CVE-2026-7867

핵심 요약

이 취약점은 실제 D-Bus 호출자 UID와 as-user 마운트 옵션으로 생성된 계산/유효 UID 사이의 잘못된 신뢰 관계로 인해 발생합니다.

취약한 흐름에서 권한이 없는 로컬 사용자는 마운트 실행 경로에 영향을 주어 예상된 PolicyKit 권한 부여 동작 없이 파일시스템 마운트가 권한 있는/루트 컨텍스트에서 수행되도록 할 수 있습니다.

핵심 버그는 단순히 "사용자가 제어하는 마운트 옵션"이 아닙니다.

실제 문제는 다음과 같습니다:

udisks2는 fstab 마운트 권한 부여 및 실행 중에 원래 호출자 ID와 계산된 as-user ID를 일관되게 구분하지 못합니다.


한눈에 보는 취약점

필드값
CVECVE-2026-7867
제품udisks2
구성 요소Filesystem.Mount
공격 유형로컬 권한 상승
프리미티브as-user 스푸핑
보안 경계D-Bus 호출자 ID → 권한 있는 마운트 실행
권한 부여 계층PolicyKit / fstab 마운트 권한 부여
공급업체Red Hat / udisks 업스트림
상태패치 진행 중 / 조율된 공개
예정된 수정 릴리스udisks 2.11.2

영향받는 영역

취약한 로직은 udisks2 내부의 fstab 마운트 처리 경로와 관련이 있으며, 특히 마운트 요청에 다음이 포함될 때 발생합니다:

Filesystem.Mount
as-user
x-udisks-auth
user
users

관련 보안 민감 영역은 다음과 같습니다:

D-Bus caller identity
        ↓
as-user option handling
        ↓
fstab authorization logic
        ↓
PolicyKit decision flow
        ↓
root-context mount execution

공격 흐름

┌─────────────────────────────┐
│ Unprivileged Local User     │
└──────────────┬──────────────┘
               │
               │ Filesystem.Mount
               │ with as-user influence
               ▼
┌─────────────────────────────┐
│ udisks2 / udisksd           │
│ privileged system daemon    │
└──────────────┬──────────────┘
               │
               │ fstab logic evaluates
               │ user/auth options
               ▼
┌─────────────────────────────┐
│ Authorization Gap           │
│ mount_other_user not        │
│ enforced in skipped path    │
└──────────────┬──────────────┘
               │
               │ root-context branch reached
               ▼
┌─────────────────────────────┐
│ Filesystem Mounted          │
│ without expected auth flow  │
└──────────────┬──────────────┘
               │
               │ impact depends on mount flags
               ▼
┌─────────────────────────────┐
│ Local Privilege Escalation  │
│ controlled lab validation   │
└─────────────────────────────┘

근본 원인

취약한 동작은 ID 혼동 버그에서 비롯됩니다.

시스템에는 여러 ID 개념이 있습니다:

real D-Bus caller UID
computed as-user UID
effective mount UID
udisksd daemon privilege context

취약한 흐름은 이러한 ID를 일관되게 강제하지 못합니다.

특히:

  • as-user가 사용되므로 mount_other_user가 true가 될 수 있음
  • x-udisks-auth, user 또는 users와 같은 fstab 옵션이 권한 부여 경로에 영향을 줄 수 있음
  • 권한 부여 블록이 건너뛸 수 있음
  • mount_other_user 검사가 해당 블록 외부에서는 안정적으로 강제되지 않음
  • 마운트 경로가 실제 루트/관리자 실행을 위한 분기에 도달할 수 있음
  • 마운트가 권한 있는 데몬 컨텍스트에 의해 수행됨

그 결과 로컬 권한 경계가 우회됩니다.


x-udisks-auth 문제

x-udisks-auth 옵션은 관리형 PolicyKit 권한 부여 흐름을 강제하기 위한 것입니다.

예상 동작:

mount request
    ↓
attempt mount as caller
    ↓
permission/auth failure
    ↓
PolicyKit filesystem-fstab check
    ↓
admin approval
    ↓
mount as authorized privileged action

취약한 동작:

mount request with as-user influence
    ↓
computed identity affects execution
    ↓
mount succeeds too early
    ↓
PolicyKit auth path is not reached as expected
    ↓
privileged mount state is achieved

이로 인해 취약한 경로에서 x-udisks-auth 관련 보안 모델이 신뢰할 수 없게 됩니다.


보안 모델 위반

예상 모델:

Unprivileged user
    ↓
D-Bus mount request
    ↓
PolicyKit / fstab authorization
    ↓
restricted mount behavior

깨진 모델:

Unprivileged user
    ↓
D-Bus mount request with as-user spoofing
    ↓
authorization logic mismatch
    ↓
root-context mount execution

이 버그는 영향을 받는 서비스가 상승된 권한으로 실행되기 때문에 특히 심각합니다.


영향

성공적인 악용 시 로컬의 권한 없는 사용자가 예상된 권한 부여 프롬프트 없이 udisks2를 통해 루트 컨텍스트 실행 경로에서 파일시스템을 마운트할 수 있습니다.

파일시스템 및 마운트 플래그에 따라 영향은 다음과 같을 수 있습니다:

  • 로컬 권한 상승
  • 권한 없는 루트 컨텍스트 파일시스템 마운트
  • 예상된 PolicyKit 권한 부여 우회
  • 안전하지 않은 fstab 관리 장치 마운트
  • 영향받는 실험실 구성에서 setuid 기반 권한 상승
  • 공격자가 제어하거나 준비한 파일시스템에서 예기치 않은 파일 실행

악용 조건

이는 로컬 취약점입니다.

관련 조건은 다음과 같습니다:

조건필요 여부
로컬 사용자 접근예
취약한 udisks2 버전예
as-user 기능 존재예
적합한 fstab 관리 마운트 대상예
취약한 권한 부여 경로예
원격 접근아니요

저장소 구조

.
├── README.md
├── disk2root.sh              ← main exploit (self-contained LPE)
└── poc/
    ├── setup_lpe_env.sh       ← lab environment setup
    ├── f2_mount_as_user_bypass.sh
    ├── f2_check_nosuid.sh
    ├── f2_suid_test.sh
    ├── f2_final.sh
    └── cleanup_lpe_env.sh

익스플로잇 — disk2root.sh

자체 포함된 무기화 익스플로잇입니다. 자체 SUID 루트 페이로드를 빌드하고, 준비된 디스크 이미지를 생성한 다음 as-user=root polkit 우회를 통해 마운트하고 루트 셸로 전환합니다.

빠른 시작

옵션 1 — 루트로 실행 (SSH를 포함한 모든 환경에서 동작):

./disk2root.sh

스크립트는 자동으로 다음을 수행합니다:

  1. 정적 SUID 루트 셸 바이너리 컴파일
  2. 루프 장치에 32MB ext4 이미지 생성
  3. debugfs를 통해 uid=0 mode=4755로 바이너리 주입
  4. x-udisks-auth가 포함된 fstab 항목 추가
  5. su를 통해 권한 없는 사용자로 전환
  6. as-user=root로 Filesystem.Mount 호출 (polkit 우회)
  7. SUID 바이너리 실행 → 루트 셸
  8. 종료 시 모든 항목 정리

권한 상승을 시작할 사용자를 지정하려면:

./disk2root.sh testuser

사용자를 지정하지 않으면 스크립트는 시스템의 첫 번째 일반 사용자를 선택하거나 임시 사용자를 생성합니다.


옵션 2 — 권한 없는 사용자로 실행 (데스크톱 / 활성 세션):

./disk2root.sh

활성 polkit 세션(데스크톱 로그인, GNOME/KDE)이 있는 시스템에서는 스크립트가 완전히 자체 포함되어 있습니다 — udisksctl 또는 D-Bus LoopSetup을 통해 자체 루프 장치를 생성하고 as-user=root로 마운트하여 사전 설정 없이 권한을 상승시킵니다.


옵션 3 — 권한 없는 사용자로 실행 (SSH, 설정 이후):

환경이 이미 준비된 경우(예: 루트로 poc/setup_lpe_env.sh를 실행했거나 이전에 루트로 ./disk2root.sh를 실행한 경우), 모든 권한 없는 사용자가 다시 악용할 수 있습니다:

./disk2root.sh

스크립트는 취약한 fstab 항목을 자동으로 감지하여 사용합니다.


정리

./disk2root.sh --cleanup

모든 산출물을 제거합니다: fstab 항목, 루프 장치, 마운트 지점, 임시 사용자.


전략 실행 순서

권한 없는 사용자로 실행되면 스크립트는 다음 여러 경로를 순서대로 시도합니다:

[A] Self-contained
    build payload → create ext4 image → debugfs inject SUID binary
    → loop-setup (python3 GIO / udisksctl) → mount as-user=root
    ✓ works on desktop sessions
도구 다운로드