Вразливість CVE-2026-43503 (CVSS 8.8), що отримала назву DirtyClone, дає змогу локальному користувачеві пошкодити вміст файлів у сторінковому кеші ядра Linux через клонування мережевих пакетів і отримати привілеї root. 25 червня компанія JFrog Security Research опублікувала робочий експлойт із покроковим описом атаки. Патч було включено до основної гілки ядра 21 травня; Ubuntu, Debian, SUSE і Red Hat уже випустили оновлення або відстежують виправлення. Найбільшому ризику піддаються багатокористувацькі сервери, вузли контейнеризації, CI-раннери та кластери Kubernetes, де непривілейовані користувачі можуть створювати простори імен.
Механізм вразливості
За даними дослідників JFrog, коренева причина DirtyClone — втрата прапорця, який позначає пам’ять мережевого пакета як спільну з файлом на диску. Коли ядро внутрішньо копіює мережевий пакет, допоміжні функції __pskb_copy_fclone() і skb_shift() скидають цей прапорець безпеки. Одного втраченого біта достатньо, щоб перетворити оптимізацію нульового копіювання на примітив запису.
Ланцюжок експлуатації, за повідомленнями, виглядає так:
- Зловмисник завантажує привілейований бінарний файл (наприклад,
/usr/bin/su) у пам’ять і прив’язує відповідні сторінки пам’яті до мережевого пакета. - Ядро клонує цей пакет, втрачаючи прапорець спільної фрагментації.
- Клонований пакет проходить через IPsec-тунель, який контролює зловмисник.
- На етапі дешифрування вміст перезаписується довільними байтами — перевірки автентичності в бінарному файлі замінюються кодом зловмисника.
- Під час наступного запуску
suбудь-яким користувачем системи відбувається передання привілеїв root.
Критична особливість атаки: файл на диску залишається незмінним. Модифікація існує лише у сторінковому кеші ядра, тому засоби контролю цілісності файлів не виявляють підміну, а перезавантаження відновлює оригінальний бінарний файл. На момент можливої перевірки зловмисник уже має права root.
Передумови для експлуатації
Для налаштування IPsec-тунелю на loopback-інтерфейсі потрібен привілей CAP_NET_ADMIN. За даними дослідників, у Debian і Fedora непривілейовані простори імен користувачів увімкнені за замовчуванням, що дає змогу локальному користувачеві отримати цей привілей всередині нового простору імен. Оскільки сторінковий кеш є спільним на рівні хоста, модифікації, зроблені всередині простору імен, впливають на всі процеси на машині.
Ubuntu 24.04 і пізніші версії обмежують створення просторів імен через AppArmor, що, за даними JFrog, блокує стандартний шлях експлуатації. Втім вразливість у ядрі залишається, і альтернативні вектори атаки не виключені.
JFrog підтвердила працездатність експлойта на системах Debian, Ubuntu і Fedora з конфігураціями просторів імен за замовчуванням.
Четверта вразливість у серії
DirtyClone — четверта вразливість ескалації привілеїв з ідентичним механізмом відмови за останні два місяці. Усі вони пов’язані із ситуацією, коли файлова пам’ять обробляється як дані пакета, а мережева операція записує туди, де мала б копіювати:
- Copy Fail (CVE-2026-31431) — кінець квітня, чотирибайтний запис у сторінковий кеш через модуль algif_aead.
- DirtyFrag (CVE-2026-43284, CVE-2026-43500) — 7 травня, повноцінний примітив запису через IPsec ESP та RxRPC.
- Fragnesia (CVE-2026-46300) — 13 травня, обхід патча DirtyFrag через помилку скидання прапорця в
skb_try_coalesce().
Кожне виправлення закривало один шлях у коді, залишаючи інші відкритими. Фундаментальна проблема має контрактний характер: кожен шлях коду, що переміщує фрагменти skb, зобов’язаний зберігати біт спільного фрагмента. Механізм нульового копіювання в мережевому стеку ядра дає змогу файловій пам’яті виступати даними пакета, і єдиний втрачений прапорець у будь-якому місці ланцюжка перетворює оптимізацію продуктивності на вразливість.
Дослідник Hyunwoo Kim, який виявив початкову DirtyFrag, 16 травня представив розширений патч, що покриває кілька решти допоміжних функцій передавання фрагментів. Об’єднане виправлення було прийнято 21 травня (коміт 48f6a5356a33), CVE-2026-43503 присвоєно 23 травня, виправлення увійшло до Linux v7.1-rc5.
Оцінка впливу
Найбільшому ризику піддаються середовища з багатокористувацьким доступом:
- Багатокористувацькі сервери зі спільним доступом через SSH
- Вузли контейнеризації та кластери Kubernetes, де користувачі можуть створювати простори імен
- CI/CD-раннери, що виконують код із ненадійних репозиторіїв
- Будь-які системи на Debian чи Fedora з конфігурацією просторів імен за замовчуванням
Відсутність слідів у журналах аудиту та невидимість для засобів контролю цілісності файлів роблять цю вразливість особливо небезпечною для інфраструктур, що покладаються на ці механізми виявлення.
Рекомендації щодо захисту
Основна дія — встановити оновлення ядра від вашого дистрибутива. Виправлення включено до основної гілки (v7.1-rc5) і бекпортовано до стабільних та LTS-гілок. Advisory оприлюднено Ubuntu, Debian і SUSE.
Якщо негайне оновлення неможливе, доступні два тимчасові обхідні шляхи:
- Обмеження непривілейованих просторів імен: на Debian і Ubuntu — встановити
kernel.unprivileged_userns_clone=0. Інші дистрибутиви використовують інші механізми. - Блокування модулів ядра: додати до чорного списку модулі
esp4,esp6таrxrpc. Це порушить роботу IPsec і AFS та застосовне лише якщо ці компоненти завантажуються як модулі, а не вбудовані в ядро.
Обидва обхідні шляхи — тимчасові заходи, що не усувають вразливість.
Серія DirtyFrag демонструє системну проблему в мережевому стеку ядра Linux: будь-яка функція, що переміщує дескриптори фрагментів без збереження прапорця спільного фрагмента, потенційно є новою вразливістю. Організаціям, які експлуатують багатокористувацькі Linux-системи, слід не лише застосувати поточний патч, а й включити моніторинг оновлень ядра, пов’язаних із обробкою skb_shinfo()->flags під час передавання фрагментів, до регулярного процесу керування вразливостями.