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

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-7867-disk2root | 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

저장소 보기
12개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유





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


개요

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

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

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

Azizcan Daştanazqzazq1
Özlem Ozanoz7oz7

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

root@kitploit:~
CVE-2026-7867

핵심 요약

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

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

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

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

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


한눈에 보는 취약점


영향받는 영역

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

root@kitploit:~
Filesystem.Mount
as-user
x-udisks-auth
user
users

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

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

공격 흐름

root@kitploit:~
┌─────────────────────────────┐
│ 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 개념이 있습니다:

root@kitploit:~
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 권한 부여 흐름을 강제하기 위한 것입니다.

예상 동작:

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

취약한 동작:

root@kitploit:~
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 관련 보안 모델이 신뢰할 수 없게 됩니다.


보안 모델 위반

예상 모델:

root@kitploit:~
Unprivileged user
    ↓
D-Bus mount request
    ↓
PolicyKit / fstab authorization
    ↓
restricted mount behavior

깨진 모델:

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

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


영향

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

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

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

악용 조건

이는 로컬 취약점입니다.

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


저장소 구조

root@kitploit:~
.
├── 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를 포함한 모든 환경에서 동작):

root@kitploit:~
./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. 종료 시 모든 항목 정리

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

root@kitploit:~
./disk2root.sh testuser

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


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

root@kitploit:~
./disk2root.sh

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


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

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

root@kitploit:~
./disk2root.sh

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


정리

root@kitploit:~
./disk2root.sh --cleanup

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


전략 실행 순서

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

root@kitploit:~
[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

[B] Fstab fallback
    scan /etc/fstab for x-udisks-auth / user / users entries
    → mount as-user=root → find SUID binary on mounted fs
    ✓ works on SSH when environment is prepared

출력 예시

root@kitploit:~
╔═════════════════════════════════════════════════════╗
║  CVE-2026-7867 — disk2root                          ║
║  udisks2 as-user polkit bypass → LPE root shell     ║
╚═════════════════════════════════════════════════════════╝

[*] uid=1002 (testuser) — exploiting...
    fstab: /dev/loop5 → /mnt/disk2root (x-udisks-auth)
    mounted: /mnt/disk2root
    nosuid: not set
    suid: pwn (4755 root:root)

╔═════════════════════════════════════════════════════╗
║  dropping into root shell — type 'exit' to return   ║
╚═════════════════════════════════════════════════════════╝

[+] root shell — uid=0 euid=0
root@target:/tmp#

요구 사항


PoC 스크립트 (poc/)

연구 중 사용된 개별 검증 스크립트입니다. 이들은 disk2root.sh로 이어진 구성 요소입니다.

실험실 흐름 (개별 PoC 스크립트 사용)

root@kitploit:~
1. Run poc/setup_lpe_env.sh as root
2. su - testuser
3. Run poc/f2_mount_as_user_bypass.sh
4. Run poc/f2_final.sh for full validation
5. Run poc/cleanup_lpe_env.sh as root

또는 위의 모든 기능을 결합한 disk2root.sh를 사용하면 됩니다.


기술 프리미티브

이 연구에서 입증된 프리미티브는 다음과 같습니다:

root@kitploit:~
as-user option spoofing inside privileged mount orchestration

핵심 전환 과정은 다음과 같습니다:

root@kitploit:~
unprivileged D-Bus caller
        ↓
spoofed/computed mount identity
        ↓
authorization path confusion
        ↓
root-context mount execution

이것이 이 문제가 로컬 권한 상승 취약점으로 분류되는 이유입니다.


이 버그가 중요한 이유

udisks2는 일반적으로 권한 있는 스토리지 관리 데몬으로 신뢰됩니다.

이 계층의 버그는 다음 사이에 위치하기 때문에 영향력이 큽니다:

root@kitploit:~
desktop/session users
D-Bus method calls
PolicyKit authorization
filesystem mount operations
root daemon privileges

여기서 ID 처리의 결함은 로컬 권한 경계에 직접적인 영향을 줄 수 있습니다.


탐지 아이디어

방어자는 as-user와 관련된 의심스러운 udisks2 마운트 활동을 모니터링할 수 있습니다.

유용한 텔레메트리 소스:

root@kitploit:~
udisksd logs
D-Bus method calls
PolicyKit logs
mount table changes
/proc/mounts
/etc/fstab
journalctl

유용한 명령:

root@kitploit:~
findmnt
mount
cat /proc/mounts
journalctl -u udisks2
journalctl | grep -i udisks
journalctl | grep -i polkit

의심스러운 패턴:

root@kitploit:~
non-root user triggering Filesystem.Mount
as-user=root usage
unexpected mount without PolicyKit prompt
mounts lacking nosuid/noexec/nodev
setuid execution from recently mounted filesystems
unexpected loop device mounts

완화

udisks2 업데이트

공급업체가 제공하는 수정 사항이 제공되면 적용하십시오.

예정된 수정 릴리스:

root@kitploit:~
udisks 2.11.2

fstab 항목 검토

다음을 사용하는 항목을 감사하십시오:

root@kitploit:~
x-udisks-auth
user
users

특히 실행 파일 또는 setuid 콘텐츠를 포함할 수 있는 파일시스템을 검토하십시오.


로컬 셸 접근 제한

이는 로컬 취약점이므로 신뢰할 수 없는 로컬 접근을 줄이면 노출이 감소합니다.


마운트 활동 모니터링

다음을 통해 예기치 않은 마운트 작업을 모니터링하십시오:

root@kitploit:~
udisksd

특히 비루트 사용자가 트리거할 때 더욱 주의하십시오.


더 안전한 마운트 플래그 적용

해당되는 경우 다음을 사용하십시오:

root@kitploit:~
nosuid
noexec
nodev

이러한 플래그는 마운트 후 영향을 줄일 수 있습니다.


PolicyKit 규칙 강화

udisks 마운트 작업과 관련된 PolicyKit 규칙을 검토하십시오.

권한 없는 사용자가 명시적 권한 부여 없이 민감한 마운트 경로를 트리거할 수 없도록 하십시오.


수정 방향

강력한 수정 사항은 다음을 보장해야 합니다:

  • 원래 D-Bus 호출자 UID가 보존됨
  • 계산된 as-user UID가 권한 부여 시 호출자 ID를 대체하지 않음
  • mount_other_user가 항상 적절한 PolicyKit 검사를 트리거함
  • 루트 컨텍스트 마운트 실행이 진정한 인증된 루트/관리자 흐름으로 제한됨
  • x-udisks-auth가 인증을 일관되게 강제함
  • 암호화된 파일시스템 처리와 같은 관련 코드 경로가 감사됨

공개 타임라인


크레딧


공개 릴리스 계획

엠바고 해제 후 이 저장소는 다음 구조의 공개 연구 저장소로 전환될 수 있습니다:

root@kitploit:~
docs/
├── technical-analysis.md
├── root-cause.md
├── lab-setup.md
├── exploit-flow.md
├── detection.md
└── mitigation.md

권장 공개 추가 항목:

  • 공식 CVE 링크
  • Red Hat 권고 링크
  • 업스트림 패치 링크
  • 영향/수정 버전 매트릭스
  • 안전한 재현 가이드
  • 통제된 PoC 사용 메모
  • 탐지 및 강화 가이드

면책 조항

이 저장소는 승인된 보안 연구, 공급업체 조정 및 방어적 검증 전용입니다.

PoC 스크립트는 격리된 테스트 환경을 대상으로 합니다.

소유하지 않았거나 테스트에 대한 명시적 허가가 없는 시스템에서 이러한 스크립트를 실행하지 마십시오.

저자는 이 연구의 오용에 대해 책임을 지지 않습니다.



CVE-2026-7867
udisks2 로컬 권한 상승 연구



도구 다운로드
필드값
CVECVE-2026-7867
제품udisks2
구성 요소Filesystem.Mount
공격 유형로컬 권한 상승
프리미티브as-user 스푸핑
보안 경계D-Bus 호출자 ID → 권한 있는 마운트 실행
권한 부여 계층PolicyKit / fstab 마운트 권한 부여
공급업체Red Hat / udisks 업스트림
상태패치 진행 중 / 조율된 공개
예정된 수정 릴리스udisks 2.11.2
조건필요 여부
로컬 사용자 접근예
취약한 udisks2 버전예
as-user 기능 존재예
적합한 fstab 관리 마운트 대상예
취약한 권한 부여 경로예
원격 접근아니요
도구용도필수
busctlD-Bus 마운트 호출예
gccSUID 페이로드 컴파일예 (bash 복사로 대체 가능)
mke2fsext4 이미지 생성예 (자체 포함 모드)
debugfsuid=0 바이너리 주입예 (자체 포함 모드)
python3-gifd 전달을 통한 D-Bus LoopSetup선택 (데스크톱 모드)
udisksctl루프 장치 설정선택 (데스크톱 모드)
스크립트용도
setup_lpe_env.sh실험실 환경 준비 (루프 장치, fstab, 테스트 사용자)
f2_mount_as_user_bypass.shas-user=root를 사용한 Filesystem.Mount 우회 검증
f2_check_nosuid.sh우회 마운트에서 nosuid/noexec/nodev 플래그 확인
f2_suid_test.sh마운트된 파일시스템에서 SUID 바이너리 실행 테스트
f2_final.sh종단 간 PoC: 설정 → 우회 → euid=0 확인
cleanup_lpe_env.sh테스트 환경 복원
날짜이벤트
2026-04-21Red Hat 제품 보안에 보고서 제출
2026-04-21Red Hat이 접수 확인
2026-04-28공급업체가 결함 로직 확인
2026-04-28공급업체가 PoC 스크립트 요청
2026-04-30공급업체가 CVE 할당 요청
2026-04-30PoC 스크립트를 공급업체에 전송
2026-05-03초기 공급업체 패치 공유
2026-05-05업데이트된 공급업체 패치 공유
2026-05-05CVE-2026-7867 예약됨
2026-05-05티켓이 해결됨으로 표시
2026-05-07공급업체가 udisks 2.11.2 수정 예정임을 표시
연구자GitHub역할
Azizcan Daştanazqzazq1발견, 분석, PoC 개발, 공급업체 조정
Özlem Ozanoz7oz7연구 협업 및 공개 크레딧