Dirty Frag: вразливість Linux підвищує ризик після-компрометації
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Dirty Frag відноситься до вразливостей ескалації привілеїв у Linux, які відстежуються як CVE-2026-43284 and CVE-2026-43500 , які дозволяють користувачам з низьким рівнем привілеїв отримати доступ до root, маніпулюючи компонентами ядра для обробки мережі та фрагментів пам’яті, включаючи esp4, esp6, та rxrpc. Експлойт був виявлений у реальних атаках, де спочатку зловмисники здобувають початкову присутність через доступ SSH, веб-шели, втечу з контейнерів або порушені облікові записи сервісів, а потім активують вразливість за допомогою ELF-бінарника, що викликає команду su . Після отримання привілеїв root зловмисники можуть відключити засоби безпеки, змінювати логи, пересуватися системою та встановлювати постійну присутність. У звіті описується обмежена, але активна кампанія, яка використовує цю техніку.
Розслідування
Дослідники Microsoft Defender спостерігали покроковий ланцюжок проникнення, в якому зовнішній актор спочатку отримав доступ SSH, відкрив інтерактивну оболонку і розмістив ELF-бінарник під назвою ./update. Цей бінарний файл негайно викликав su для ескалації привілеїв, після чого нападник змінив файл аутентифікації GLPI LDAP, перерахував каталоги GLPI, видалив і прочитав файли сеансу PHP, а також ексфільтрував дані сеансів. Діяльність користалася з попередженнями Microsoft Defender, пов’язаними з підозрілою виконаною SUID і SGID виконанням, і потенційною експлуатацією Dirty Frag. Розслідування триває, оскільки дослідники продовжують перегляд нових даних телеметрії.
Зменшення наслідків
Оновлення безпеки для CVE-2026-43284 були випущені 8 травня 2026 року, в той час як виправлення для CVE-2026-43500 ще не було доступне на момент звітування. Рекомендовані заходи включають вимкнення вразливих модулів ядра rxrpc, esp4, та esp6 через конфігурацію modprobe , зменшення непотрібного локального доступу до оболонки, зміцнення контейнеризованих робочих навантажень і очищення кешів сторінок після підозр на експлуатацію. Організації також повинні віддавати перевагу розгортанню патчів ядра та перевіряти цілісність критичних файлів після будь-якої підозри на компрометацію.
Відгук
Захисники повинні виявляти незвичайне використання команди su , завантаження esp4, esp6, або rxrpc модулі, та виконання невідомих ELF-бінарників у привілейованих контекстах. Необхідно своєчасно застосовувати останні оновлення ядра. Додаткові заходи повинні включати застосування принципу найменших привілеїв для локальних облікових записів, посилене управління ключами SSH та моніторинг цілісності файлів для важливих файлів, таких як конфігурації аутентифікації GLPI LDAP. Якщо підозрюється експлуатація, команди повинні очищати кеші, розвантажувати уражені модулі і проводити судово-медичний аналіз як пам’яті, так і артефактів файлової системи.
"граф TB %% Розділ визначень класів classDef action fill:#99ccff %% Синій для вузлів дій classDef builtin fill:#cccccc %% Сірий для інструментів, шкідливих програм, вразливостей, файлів %% Визначення вузлів initial_access["<b>Дія</b> – <b>T1078 Дійсні облікові записи</b><br/><b>Опис</b>: Використовуйте скомпрометовані SSH облікові дані для отримання інтерактивної оболонки на хості Linux."] class initial_access action execution_unix_shell["<b>Дія</b> – <b>T1059.004 Оболонка Unix</b><br/><b>Опис</b>: Виконання шкідливого ELF-бінарника (./update) через оболонку Unix."] class execution_unix_shell action priv_esc_exploit["<b>Дія</b> – <b>T1068 Експлуатація для ескалації привілеїв</b><br/><b>Опис</b>: Експлуатація вразливості ядра Dirtyu202fFrag (CVEu20112026u201143284 / CVEu20112026u201143500) для отримання привілеїв root."] class priv_esc_exploit action credential_harvest["<b>Дія</b> – <b>T1552.001 Облікові дані у файлах</b><br/><b>Опис</b>: Модифікуйте файл аутентифікації GLPI LDAP для збору збережених облікових даних."] class credential_harvest action defense_evasion["<b>Дія</b> – <b>T1070.004 Видалення файлів</b><br/><b>Опис</b>: Видаліть файли сеансів PHP, щоб стерти докази та зірвати активні сеанси."] class defense_evasion action tool_ssh["<b>Інструмент</b> – <b>Назва</b>: SSH<br/><b>Опис</b>: Протокол віддаленого входу, що використовується з викраденими обліковими даними."] class tool_ssh builtin malware_update["<b>Шкідлива програма</b> – <b>Назва</b>: update (ELF-бінарний файл)<br/><b>Опис</b>: Шкідливий виконуваний файл, що викликає ескалацію привілеїв."] class malware_update builtin vuln_dirtyfrag["<b>Вразливість</b> – <b>Назва</b>: Dirtyu202fFrag (CVEu20112026u201143284 / CVEu20112026u201143500)<br/><b>Опис</b>: Помилка корупції пам’яті ядра, що дозволяє локальну ескалацію привілеїв."] class vuln_dirtyfrag builtin file_glpi["<b>Файл</b> – <b>Назва</b>: Конфігурація аутентифікації GLPI LDAP<br/><b>Шлях</b>: /etc/glpi/ldap.conf"] class file_glpi builtin file_sessions["<b>Файл</b> – <b>Назва</b>: Файли сеансів PHP<br/><b>Місцезнаходження</b>: /var/lib/php/sessions/"] class file_sessions builtin %% З’єднання, що показують атаковий потік initial_access –>|використовує| tool_ssh tool_ssh –>|забезпечує оболонку для| execution_unix_shell execution_unix_shell –>|виконує| malware_update malware_update –>|експлуатує| vuln_dirtyfrag vuln_dirtyfrag –>|дозволяє| priv_esc_exploit priv_esc_exploit –>|модифікує| file_glpi file_glpi –>|дає| credential_harvest credential_harvest –>|призводить до| defense_evasion defense_evasion –>|видаляє| file_sessions "
Потік атаки
Виконання симуляції
Попередня умова: Перевірка телеметрії та базового рівня повинна бути пройдена.
Обґрунтування: У цьому розділі докладно описується точне виконання техніки супротивника (T1548), розробленої для активації правила виявлення. Команди й наратив ПОВИННІ безпосередньо відповідати виявленим TTP і спрямовані на створення саме тієї телеметрії, яку очікує логіка виявлення.
-
Сценарій атаки та команди:
-
Підготовка – Вивантаження шкідливого ELF:
Атакуючий, працюючи з обліковим записом із низькими привілеями, створює виготовлений ELF-бінарний файл під назвоюupdate, що експлуатує вразливість Dirty Frag. У лабораторії ми імітуємо це простим ELF з “hello world”.cat <<'EOF' > update.c #include <stdio.h> int main() { printf("Malicious update executedn"); return 0; } EOF gcc -o update update.c chmod +x update -
Виконання вразливого бінарного файлу:
Атакуючий запускає ELF з поточного каталогу, генеруючи подіюexecveдля./update../update -
Ескалація привілеїв – виклик
suпісля ELF:
Відразу після завершення шкідливого ELF, нападник виконуєsuдля отримання оболонки з правами root, покладаючись на неправильну конфігурацію системи, яка дозволяє ескалацію без пароля (типово у вразливих лабораторних налаштуваннях).su -c "id"Командний рядок
su -c "id"містить слово./updateу межах однієї сесії (правило виявлення перевіряє тільки наявністьproc.cmdline|contains: './update'в рамках того жsuпроцесу). Щоб задовольнити правило, ми вбудовуємо шлях у самsuкомандний рядок:su -c "./update && id"Це об’єднує виконання шкідливого ELF і запит ескалації привілеїв в одному
suвиклику, створюючи саме ту телеметрію, яку очікує правило.
-
-
Сценарій тесту на регресію:
#!/usr/bin/env bash # ------------------------------------------------------------ # Імітує ланцюжок ескалації привілеїв Dirty Frag / Copy Fail # ------------------------------------------------------------ set -euo pipefail # 1. Створіть простий ELF-бінарний файл з назвою 'update' cat <<'EOF' > update.c #include <stdio.h> int main() { printf("Simulated malicious updaten"); return 0; } EOF gcc -o update update.c chmod +x update # 2. Виконайте ELF (генерує звичайну подію execve) echo "[*] Запуск шкідливого ELF ./update" ./update # 3. Запустіть умову виявлення: su з командним рядком, що містить './update' echo "[*] Виконання su для підвищення привілеїв з посиланням на './update'" # Примітка: У багатьох лабораторних умовах 'su' може бути налаштовано без пароля. su -c "./update && id" # 4. Прибирання (врегульовано окремо) -
Команди очищення:
#!/usr/bin/env bash # ------------------------------------------------------------ # Прибирає артефакти, створені сценарієм симуляції # ------------------------------------------------------------ set -euo pipefail echo "[*] Видалення симульованого ELF-бінарника та вихідного файлу" rm -f update update.c echo "[*] Прибирання завершено"