Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-7867-disk2root — Оружиезированный локальный эксплойт повышения привилегий для CVE-2026-7867 в udisks2, использующий подмену монтирования as-user для обхода PolicyKit и получения root-оболочки. | Kitploit
Инструменты/GitHubGitHub/azqzazq1/cve-2026-7867-disk2root
Повышение привилегийАнализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingЭксплуатация Бинарных ФайловЛаборатории и Практика

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubazqzazq1/cve-2026-7867-disk2root

CVE-2026-7867-disk2root

Оружиезированный локальный эксплойт повышения привилегий для CVE-2026-7867 в udisks2, использующий подмену монтирования as-user для обхода PolicyKit и получения root-оболочки.

Репозиторий
123 месяцев назадЕщё не проверено





Filesystem.Mount → подмена as-user → обход авторизации → монтирование в root-контексте → LPE


Обзор

CVE-2026-7867 — это локальная уязвимость повышения привилегий в udisks2, связанная с D-Bus-методом Filesystem.Mount, опцией as-user, потоками монтирования, управляемыми через fstab, и ошибочной обработкой авторизации.

Этот приватный репозиторий содержит технические исследовательские заметки и PoC-скрипты, использованные для проверки проблемы в контролируемой лабораторной среде.

Уязвимость была обнаружена, и о ней было сообщено:

Azizcan Daştanazqzazq1
Özlem Ozanoz7oz7

Проблеме был присвоен идентификатор:

root@kitploit:~
CVE-2026-7867

Резюме

Уязвимость вызвана ошибочными доверительными отношениями между реальным UID вызывающего D-Bus процесса и вычисляемым/эффективным UID, формируемым опцией монтирования as-user.

В уязвимых сценариях непривилегированный локальный пользователь может повлиять на путь выполнения монтирования таким образом, что монтирование файловой системы выполняется в привилегированном/root-контексте без ожидаемого поведения авторизации PolicyKit.

Суть ошибки не просто в «контролируемых пользователем опциях монтирования».

Настоящая проблема в следующем:

udisks2 не может последовательно различать исходную идентичность вызывающего процесса и вычисляемую идентичность as-user при авторизации и выполнении монтирования через fstab.


Кратко об уязвимости


Затронутая область

Уязвимая логика связана с путём обработки монтирования через fstab внутри udisks2, особенно когда запрос на монтирование включает:

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   │
└─────────────────────────────┘

Корневая причина

Уязвимое поведение возникает из-за ошибки путаницы идентичности.

В системе существует несколько концепций идентичности:

root@kitploit:~
real D-Bus caller UID
computed as-user UID
effective mount UID
udisksd daemon privilege context

Уязвимый поток не обеспечивает согласованное соблюдение этих идентичностей.

В частности:

  • mount_other_user может стать истинным, потому что используется as-user
  • опции fstab, такие как x-udisks-auth, user или users, могут влиять на путь авторизации
  • блок авторизации может быть пропущен
  • проверка mount_other_user надёжно не применяется вне этого блока
  • путь монтирования может достичь ветви, предназначенной для реального выполнения от root/admin
  • монтирование выполняется в привилегированном контексте демона

Результатом является обход локальной границы привилегий.


Проблема 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 в пути выполнения с root-контекстом без ожидаемого запроса авторизации.

В зависимости от файловой системы и флагов монтирования последствия могут включать:

  • локальное повышение привилегий
  • несанкционированное монтирование файловых систем в root-контексте
  • обход ожидаемой авторизации 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-payload для root, создаёт подготовленный образ диска, монтирует его через обход polkit с помощью as-user=root и открывает root-оболочку.

Быстрый старт

Вариант 1 — запуск от root (работает везде, включая SSH):

root@kitploit:~
./disk2root.sh

Скрипт автоматически:

  1. Компилирует статический SUID-бинарник root-оболочки
  2. Создаёт 32MB ext4-образ на loop-устройстве
  3. Внедряет бинарник с uid=0 mode=4755 через debugfs
  4. Добавляет запись fstab с x-udisks-auth
  5. Переключается на непривилегированного пользователя через su
  6. Вызывает Filesystem.Mount с as-user=root (обход polkit)
  7. Выполняет SUID-бинарник → root-оболочка
  8. Удаляет все артефакты при выходе

Чтобы указать, от имени какого пользователя выполнять повышение привилегий:

root@kitploit:~
./disk2root.sh testuser

Если пользователь не указан, скрипт выбирает первого обычного пользователя в системе или создаёт временного.


Вариант 2 — запуск от непривилегированного пользователя (рабочий стол / активная сессия):

root@kitploit:~
./disk2root.sh

В системах с активной polkit-сессией (вход на рабочий стол, GNOME/KDE) скрипт полностью автономен — он создаёт собственное loop-устройство через udisksctl или D-Bus LoopSetup, монтирует через as-user=root и повышает привилегии без какой-либо предварительной настройки.


Вариант 3 — запуск от непривилегированного пользователя (SSH, после подготовки):

Если среда уже была подготовлена (например, запуском poc/setup_lpe_env.sh от root или предыдущим запуском ./disk2root.sh от root), любой непривилегированный пользователь может повторить эксплуатацию:

root@kitploit:~
./disk2root.sh

Скрипт автоматически обнаруживает уязвимые записи fstab и использует их.


Очистка

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

Удаляет все артефакты: запись fstab, loop-устройство, точку монтирования, временного пользователя.


Каскад стратегий

При запуске от непривилегированного пользователя скрипт последовательно перебирает несколько путей:

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

Ошибка в обработке идентичности здесь может напрямую повлиять на локальные границы привилегий.


Идеи по обнаружению

Защитники могут отслеживать подозрительную активность монтирования udisks2 с участием as-user.

Полезные источники телеметрии:

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-контент.


Ограничьте локальный доступ к shell

Поскольку это локальная уязвимость, ограничение недоверенного локального доступа снижает уровень подверженности риску.


Отслеживайте активность монтирования

Отслеживайте неожиданные операции монтирования через:

root@kitploit:~
udisksd

особенно когда они инициируются не-root пользователями.


Применяйте более безопасные флаги монтирования

Там, где это применимо, используйте:

root@kitploit:~
nosuid
noexec
nodev

Эти флаги могут снизить последствия после монтирования.


Ужесточите правила PolicyKit

Пересмотрите правила PolicyKit, связанные с действиями монтирования udisks.

Убедитесь, что непривилегированные пользователи не могут инициировать чувствительные пути монтирования без явной авторизации.


Направление исправления

Надёжное исправление должно гарантировать, что:

  • исходный UID вызывающего D-Bus сохраняется
  • вычисляемый UID as-user не заменяет идентичность вызывающего при авторизации
  • mount_other_user всегда запускает надлежащие проверки PolicyKit
  • выполнение монтирования в root-контексте ограничено подлинными авторизованными потоками root/admin
  • 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 → привилегированное выполнение монтирования
Уровень авторизацииавторизация монтирования PolicyKit / fstab
ВендорRed Hat / апстрим udisks
СтатусИсправление в работе / скоординированное раскрытие
Планируемый релиз с исправлениемudisks 2.11.2
УсловиеТребуется
Локальный доступ пользователяДа
Уязвимая версия udisks2Да
Наличие функциональности as-userДа
Подходящая цель монтирования через fstabДа
Уязвимый путь авторизацииДа
Удалённый доступНет
ИнструментНазначениеТребуется
busctlD-Bus-вызов монтированияДа
gccкомпиляция SUID-payloadДа (запасной вариант — копия bash)
mke2fsсоздание ext4-образаДа (автономный режим)
debugfsвнедрение бинарника с uid=0Да (автономный режим)
python3-giD-Bus LoopSetup с передачей fdОпционально (режим рабочего стола)
udisksctlнастройка loop-устройстваОпционально (режим рабочего стола)
СкриптНазначение
setup_lpe_env.shПодготовка лабораторной среды (loop-устройство, fstab, тестовый пользователь)
f2_mount_as_user_bypass.shПроверка обхода Filesystem.Mount с as-user=root
f2_check_nosuid.shПроверка флагов nosuid/noexec/nodev при обходном монтировании
f2_suid_test.shТестирование выполнения SUID-бинарника на смонтированной файловой системе
f2_final.shПолный PoC: подготовка → обход → проверка euid=0
cleanup_lpe_env.shВосстановление тестовой среды
ДатаСобытие
2026-04-21Отчёт отправлен в Red Hat Product Security
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Совместное исследование и указание в раскрытии