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 обязательно


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

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

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

    Починил )

     
     
  • 4.40, Аноним (40), 11:47, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Эагрузчик ;)
     
  • 3.50, Аноним (50), 12:02, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    расскажи плз как?
     

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

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

    Ну у васянов на локалхосте понятно нет никакого есп, им похрену. Но с другой стороны, откуда на васянском локалхосте какие-то юзеры с какими-то повышениями привиллегий? sudo su - и вперед, зачем какие-то эксплойты.

     
     
  • 4.47, Аноним (18), 11:59, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >нет. без esp4.ko ничего у тебя работать не будет. Вообще.

    Это что, например, у меня не должно работать? Я без иронии. Примеры в студию!

     
  • 3.27, Аноним (27), 11:28, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >а так это ещё один повод перейти на семейтво bsd

    А уже есть куда переходить, и bsd избавились от детских проблем? Может быть ещё и код bsd перестал утекать корпорациям? Просто для справки: если в virtualbox выделить два ядра для openbsd, то установщик улетает в панику ядра. Проблема общеизвестная, и её не решают.

     
  • 2.13, Аноним (40), 10:41, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На локалхостах эта оверинжениринная байда ненужна, админы локалхостов не парятся.
     
  • 2.19, Аноним (19), 11:06, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле это неправда, этого не произойдет.
     
  • 2.25, Аноним (25), 11:22, 08/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.31, нах. (?), 11:32, 08/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.6, King_Carlo (ok), 10:29, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Хороший компьютер - отключённый от сети компьютер, ибо нефиг!
     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Honeypot это называется.
     
  • 4.43, Аноним (40), 11:52, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У тов. майор отбойный молоток найдётся. Так что, и из под затвердевшего бетона вытащит.
     

  • 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, Аноним (40), 10:45, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Загрузка модулей легко блокируется после загрузки необходимых на данном хосте.
     

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

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

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

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

     
  • 1.21, Аноним (21), 11:19, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В очердной раз человеки решили что скорость важнее чем безопасность и разогнавшись по сильнее впилились в бетонную стену.

    Сколько уже таких фейлов было?
    Вские спектры-мелтдауны, ошибки оптимизации драйверов...
    А сколько еще будет)

     
     
  • 2.26, нах. (?), 11:23, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В очердной раз человеки решили что скорость важнее чем безопасность

    там еще и во втором случае - скорость какой-то фееричной хрени, используемой полутора васянами.
    в редхатоидах, кстати, похоже не собрана ни в модуль ни в ядро (что определенно успех после предыдущего ненужно, которое у них и отключить-то нельзя)

     

  • 1.24, Аноним (25), 11:22, 08/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.28, Аноним (28), 11:30, 08/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.29, bublick (ok), 11:31, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У безопасников просто праздник какой то.
    Эксперты, скажите, а с rust такого бы не было?
     
     
  • 2.32, нах. (?), 11:38, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У безопасников просто праздник какой то.
    > Эксперты, скажите, а с rust такого бы не было?

    конечно не было бы, какие могут быть уязвимости в README.md ?

    Главное - начать переписывать!


     
     
  • 3.36, Аноним (36), 11:41, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Срочно выкинь свой андроид! Он уже поржавел, как несколько лет.
    321м полагается айфон, так что можешь уже ставить палатку под магазином яблока.
     
     
  • 4.39, нах. (?), 11:46, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Срочно выкинь свой андроид!

    э... ну... как бы это...

    > Он уже поржавел, как несколько лет.

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

    А внутри все то же линуксное ведро и те же проблемы что и были.

    Кстати, я как раз удивляюсь, почему в яблоке это еще не повторяют - куды смотрит Tim Coock, или кто там у них?! У них еще и приложения не на безопастном йезычке до сих пор, прикинь!

     
  • 2.34, Аноним (21), 11:40, 08/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.37, Аноним (37), 11:44, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а с rust такого бы не было?

    Чем больше времени отводится на обсуждение и сопровождение раста в ядре, тем запущенней всё остальное.

     
     
  • 3.44, нах. (?), 11:56, 08/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.46, Аноним (40), 11:59, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И не такое было бы.
     

  • 1.30, Аноним (28), 11:31, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А представляете, сколько дыр в ПО, которые найдены, но не раскрыты и эксплуатируются?
    Вы же не думаете, что самые честные и бескорыстные люди всё репортят, а те, кто может сделать на этом огромные деньги, в принципе глупые ничего не находят?
     
     
  • 2.35, Аноним (37), 11:41, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы же не думаете, что самые честные и бескорыстные

    Тот, кто курирует ядро, сам признался, кто он такой. Странно от него что-то ожидать "честного и бескорыстного".

     
     
  • 3.42, нах. (?), 11:48, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Вы же не думаете, что самые честные и бескорыстные
    > Тот, кто курирует ядро, сам признался, кто он такой. Странно от него

    в смысле? Он тебе книжку написал - Just for fucks... или как там оно...

    > что-то ожидать "честного и бескорыстного".

    миллион денег в год от rhbm он совершенно честно и бескорыстно получает, чего ты к нему прикопался?!

     
     
  • 4.48, Аноним (37), 11:59, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > отсутствует исправление rxrpc, поскольку оно ещё не включено в дерево Линуса
     

  • 1.33, Аноним (37), 11:38, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Уязвимость в xfrm-ESP проявляется в ядре Linux с января 2017 года, а уязвимость в RxRPC - с июня 2023 года.

    Как интересно читать про такие новости: "С такой-то даты создали уязвимость".

     
  • 1.38, Аноним (38), 11:44, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Забавно вот что:

    8 мая 2026 г. в 8:07 UTC Justin Forbes написал:

    > Fedora не получит версию 7.0.5. Это полная трата времени на выпуск ядра, поскольку он содержит только половину исправлений, в нём отсутствует исправление rxrpc, поскольку оно ещё не включено в дерево Линуса и, как следствие, не может быть включено в стабильную версию. Сборки Fedora 7.0.4 и 6.19.14-101 для F42 имеют полное исправление с обоими патчами.  Скомпилированы все архитектуры, кроме s390, поскольку пока нет сборщиков для s390, и я пишу этот ответ в 2 часа ночи, потому что не сплю, ожидая обновления статуса по этому вопросу.  А пока, если вы не используете s390, загрузите исправления из Koji.
    >
    > Justin

    Бардачок.

     
     
  • 2.41, нах. (?), 11:47, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > содержит только половину исправлений, в нём отсутствует исправление rxrpc

    интересно, зачем вообще они включили эту чушь, если в Rhbm она отсутствует даже в виде модуля?

     
  • 2.45, Аноним (37), 11:56, 08/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > в нём отсутствует исправление rxrpc, поскольку оно ещё не включено в дерево Линуса

    Даже затруднительно сказать, кто тут саботажник.

     

  • 1.49, openssh_user (ok), 12:00, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С каждым днём всё веселее и веселее
     
  • 1.51, Rev (ok), 12:02, 08/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну, как обычно. На ре начинается, на шето заканчивается :-/
     

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



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

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