The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимости Dirty Frag, изменяющие страничный кэш для получения root в любых дистрибутивах Linux

08.05.2026 09:24 (MSK)

В ядре Linux выявлены две уязвимости, по своей сути аналогичные несколько дней назад раскрытой уязвимости Copy Fail, но проявляющиеся в других подсистемах - xfrm-ESP и RxRPC. Серии уязвимостей присвоено кодовое имя Dirty Frag (также встречается упоминание Copy Fail 2). Уязвимости позволяют непривилегированному пользователю получить права root, перезаписав данные процесса в страничном кэше. Доступен эксплоит, работающий во всех актуальных дистрибутивах Linux. Информация об уязвимости раскрыта до публикации исправлений, но есть обходной метод блокирования проблемы.

Dirty Frag охватывает две разные уязвимости: первая в модуле xfrm-ESP, используемом для ускорения операций шифрования в IPsec с использованием протокола ESP (Encapsulating Security Payload), а вторая в драйвере RxRPC, реализующем семейство сокетов AF_RXRPC и одноимённый RPC-протокол, работающий поверх UDP. Каждая из уязвимостей по-отдельности позволяет добиться получения прав root. Уязвимость в xfrm-ESP проявляется в ядре Linux с января 2017 года, а уязвимость в RxRPC - с июня 2023 года. Обе проблемы вызваны оптимизациями, допускающими прямую запись в страничный кэш.

Для эксплуатации уязвимости в xfrm-ESP у пользователя должны быть права на создание пространств имён, а для эксплуатации уязвимости в RxRPC должна быть возможность загрузки модуля ядра rxrpc.ko. Например, в Ubuntu в правилах AppArmor непривилегированному пользователю запрещено создание пространств имён, но по умолчанию загружается модуль rxrpc.ko. В каких-то дистрибутивах отсутствует модуль rxrpc.ko, но не блокируется создание пространств имён. Выявивший проблему исследователь подготовил комбинированный эксплоит, способный атаковать систему через обе уязвимости, что позволяет эксплуатировать проблему во всех крупных дистрибутивах. Работа эксплоита подтверждена в Ubuntu 24.04.4 с ядром 6.17.0-23, RHEL 10.1 с ядром 6.12.0-124.49.1, openSUSE Tumbleweed с ядром 7.0.2-1, CentOS Stream 10 c ядром 6.12.0-224, AlmaLinux 10 с ядром 6.12.0-124.52.3 и Fedora 44 с ядром 6.19.14-300.

Как и в случае с уязвимостью Copy Fail, проблемы в xfrm-ESP и RxRPC вызваны выполнением расшифровки данных по месту c использованием функции splice(), передающей данные между файловыми дескрипторами и каналами (pipe) без копирования, путём передачи ссылок на элементы в страничном кэше. Смещения для операции записи рассчитывались без должных проверок, учитывающих использование прямой ссылки на элементы в страничном кэше, что позволяло через отправку специально оформленных запросов перезаписать 4 байта по выбранному смещению и изменить находящееся страничном кэше содержимое любого файла.

Все операции чтения из файлов в первую очередь отдают содержимое из страничного кэша. В случае модификации данных в страничном кэше операции чтения из файла приведут к возвращению не реально хранимой на накопителе информации, а подменённых данных. Эксплуатация уязвимости сводится к изменению страничного кэша для исполняемого файла с флагом suid root. Например, для получения прав root можно прочитать исполняемый файл /usr/bin/su для его помещения в страничный кэш, после чего добиться подстановки своего кода в загруженное в страничный кэш содержимого этого файла. Последующий запуск утилиты "su" приведёт к тому, что в память будет загружен не оригинальный исполняемый файл с накопителя, а изменённая копия из страничного кэша.

Раскрытие информации об уязвимостях и скоординированный выпуск обновлений с устранением проблем было намечено на 12 мая, но из-за утечки информации сведения об уязвимости пришлось опубликовать до публикации исправлений. В конце апреля в публичном списке рассылки netdev были опубликованы патчи к rxrpc, ipsec и xfrm, без упоминания, что они связаны с устранением уязвимости. 5 мая мэйнтейнер подсистемы IPsec принял в git-репозиторий netdev изменение c предлагаемым исправлением в модуле xfrm-esp, описание к которому во многом повторяло описание проблемы, приведшей к уязвимости Copy Fail в модуле algif_aead. Один из исследователей безопасности заинтересовался этим исправлением, сумел создать рабочий эксплоит и опубликовал его, не зная о том, что на раскрытие сведений о проблеме до 12 мая введено эмбарго.

Обновления с исправлениями для ядра Linux и пакетов с ядром в дистрибутивах пока не опубликованы, но доступны устраняющие проблемы патчи - xfrm-esp и rxrpc. CVE-идентификаторы не присвоены, что усложняет отслеживание обновления пакетов в дистрибутивах. В качестве обходного пути защиты можно заблокировать загрузку модулей ядра esp4, esp6 и rxrpc:


   sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"


  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в ядре Linux, позволяющая исказить файлы, доступные только для чтения
  3. OpenNews: Критическая уязвимость в ядре Linux, уже эксплуатируемая злоумышленниками
  4. OpenNews: В ядре Linux выявлен новый вариант уязвимости Dirty COW
  5. OpenNews: Атака по определению состояния памяти процессов при помощи страничного кэша
  6. OpenNews: Copy Fail - уязвимость в ядре Linux, позволяющая получить root в большинстве дистрибутивов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65395-dirtyfrag
Ключевые слова: dirtyfrag, pagecache, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:04, 08/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.2, _hide_ (ok), 10:09, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >>> работающий во всех актуальных дистрибутивах Linux

    Под андроидом пашет?

     
     
  • 2.4, Аноним (4), 10:20, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Только что рутанул свой самсунг.
     
     
  • 3.15, pashev.ru (?), 10:46, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Только что рутанул твой самсунг.

    Починил )

     

  • 1.3, нах. (?), 10:13, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    кто-нибудь догадается предупредить л-ов что данная команда  (в отличие от совершенно безобидной для предыдущего эксплойта, отключающей модуль используемый примерно никем) - эффективно сломает им ipsec, или улыбаемся и машем?

     
     
  • 2.5, Аноним (5), 10:28, 08/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.7, anonymous (??), 10:31, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так там-же черному по серому написанно, что уязвимость вызвана агрессивной оптимизацией. Её отлключет и все просто будет работать медленнее, а так это ещё один повод перейти на семейтво bsd.
     
     
  • 3.9, Аноним (1), 10:38, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в BSD думаю никто не искал ещё
     
  • 3.11, Аноним (11), 10:40, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У bsd меньше внимания, а не меньше уязвимостей.
     
  • 3.18, Аноним (18), 10:58, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Гента и самосборные ядра рулят! - Ни одного из этих модулей просто не собрано за ненадобностью.
     
  • 2.13, Аноним (13), 10:41, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На локалхостах эта оверинжениринная байда ненужна, админы локалхостов не парятся.
     
  • 2.19, Аноним (19), 11:06, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле это неправда, этого не произойдет.
     

  • 1.6, King_Carlo (ok), 10:29, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хороший компьютер - отключённый от сети компьютер, ибо нефиг!
     
     
  • 2.8, anonymous (??), 10:33, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ... залитый в бетон, а luser спит или умер © Касперский
     
     
  • 3.17, Аноним (17), 10:56, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Бетон затвердевает около суток, злоумышленник может воспользоваться этим эксплойтом и достать компьютер из-под смеси.
     
     
  • 4.20, Аноним (20), 11:07, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Honeypot это называется.
     

  • 1.10, А ноним (?), 10:39, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    $ ./a.out --verbose
    [su] add_xfrm_sa #0 failed
    [su] corruption stage failed (status=0x200)

    === rxrpc/rxkad LPE EXPLOIT (uid=1000 → root) ===
    [*] uid=1018 euid=1018 gid=669
    [!] socket(AF_RXRPC): Address family not supported by protocol — module not loadable?

    === rxrpc/rxkad LPE EXPLOIT (uid=1000 → root) ===
    [*] uid=1018 euid=1018 gid=669
    [!] socket(AF_RXRPC): Address family not supported by protocol — module not loadable?

    === rxrpc/rxkad LPE EXPLOIT (uid=1000 → root) ===
    [*] uid=1018 euid=1018 gid=669
    [!] socket(AF_RXRPC): Address family not supported by protocol — module not loadable?

    === rxrpc/rxkad LPE EXPLOIT (uid=1000 → root) ===
    [*] uid=1018 euid=1018 gid=669
    [!] socket(AF_RXRPC): Address family not supported by protocol — module not loadable?
    dirtyfrag: failed (rc=1)

    ЧЯДНТ?

     
  • 1.12, Аноним (12), 10:40, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Конец универсальным ядрам. Меньше модулей - меньше уязвимостей.
     
     
  • 2.14, Аноним (13), 10:45, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Загрузка модулей легко блокируется после загрузки необходимых на данном хосте.
     

  • 1.16, Sm0ke85 (ok), 10:52, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Один из исследователей безопасности заинтересовался этим исправлением, сумел создать рабочий эксплоит и опубликовал его, не зная о том, что на раскрытие сведений о проблеме до 12 мая введено эмбарго.

    Я думаю, тут можно было смело написать:

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

    Ну или просто продаст его "заинтересованным лицам" :-)))))

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру