## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-AZQZAZQ1-CVE-2026-7867-DISK2ROOT

   
   
### 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κ° ν λΉλμμ΅λλ€:
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 λ‘컬 κΆν μμΉ μ°κ΅¬
  