Уязвимость CVE-2026-46331 в подсистеме управления трафиком ядра Linux позволяет локальному непривилегированному пользователю получить права root на затронутых системах. Ошибка записи за пределами буфера в компоненте act_pedit приводит к порче страничного кеша, а публичный работающий эксплойт появился в открытом доступе в течение суток после присвоения CVE 16 июня 2026 года. Red Hat оценивает уязвимость как Important. Затронуты RHEL 8, 9, 10, Ubuntu с 18.04 по 26.04 и Debian 11–13. Администраторам многопользовательских систем, узлов Kubernetes и CI/CD-серверов следует установить обновлённое ядро немедленно или применить обходные меры.
Механизм уязвимости
Утилита tc в Linux позволяет модифицировать заголовки пакетов на лету через действие pedit. Функция ядра tcf_pedit_act(), по данным исследователей, должна создавать приватную копию данных перед редактированием — стандартный паттерн copy-on-write. Однако проверка допустимого диапазона записи выполняется до того, как становятся известны финальные смещения: часть ключей редактирования разрешает свои смещения только во время выполнения. Когда итоговое смещение выходит за пределы приватно скопированной области, запись попадает в разделяемую страницу страничного кеша вместо приватной копии.
Если эта страница принадлежит кешированному файлу, его образ в памяти оказывается повреждён. Эксплойт, как сообщается, использует это для отравления кешированной копии бинарного файла с битом setuid root (например, /bin/su): инжектирует небольшую полезную нагрузку и запускает изменённый образ с правами root. При этом файл на диске остаётся нетронутым, и проверки целостности файловой системы не обнаруживают изменений.
Этот класс ошибок хорошо знаком: Dirty Pipe, DirtyClone, Dirty Frag — все они эксплуатируют ситуацию, когда ядро записывает данные в страницу, которой не владеет эксклюзивно. Отличие CVE-2026-46331 — точка входа: непривилегированный пользователь может конфигурировать действия tc изнутри пользовательского пространства имён, получая локальную привилегию CAP_NET_ADMIN.
Предпосылки для эксплуатации
Цепочка эксплуатации требует одновременного выполнения двух условий:
- Модуль act_pedit должен быть доступен для загрузки в ядро.
- Непривилегированные пользовательские пространства имён должны быть разрешены, чтобы атакующий мог получить CAP_NET_ADMIN внутри пространства имён.
По данным автора эксплойта, оба условия выполнялись по умолчанию на RHEL 10 и Debian 13 (trixie). На Ubuntu 24.04 эксплуатация предположительно требовала маршрутизации через профили AppArmor, допускающие пользовательские пространства имён. Ubuntu 26.04 блокирует этот путь по умолчанию через ограничения AppArmor, хотя само ядро остаётся уязвимым.
Затронутые системы и статус исправлений
- Red Hat: RHEL 8, 9 и 10 перечислены как затронутые. RHEL 7 в бюллетене не указан.
- Ubuntu: поддерживаемые выпуски с 18.04 по 26.04 отмечены как уязвимые по состоянию на 25 июня 2026 года.
- Debian: trixie (Debian 13) исправлен через канал безопасности. Debian 11 и 12 по-прежнему значатся как уязвимые.
Оценка воздействия
Наибольшему риску подвержены системы, где «локальный пользователь» не означает доверенного: многопользовательские серверы, узлы Kubernetes, рабочие узлы CI/CD-конвейеров, сборочные серверы и общие исследовательские машины. Атака не оставляет следов на диске — стандартные средства контроля целостности файлов (AIDE, Tripwire, rpm -V) не зафиксируют компрометацию, пока корневая оболочка уже открыта.
Дополнительный фактор риска — хронология раскрытия. Исправление было опубликовано в списке рассылки netdev в конце мая 2026 года и, как сообщается, было оформлено как рядовой патч для исправления повреждения данных — без CVE и без предупреждения о безопасности. CVE был присвоен только при слиянии исправления 16 июня, а рабочий эксплойт появился в течение суток. Для уязвимостей класса порчи страничного кеша ожидание сигнатурных правил сканера — неприемлемо медленная стратегия.
Рекомендации по реагированию
Приоритетное действие: установить обновлённое ядро и выполнить перезагрузку. Если немедленное обновление невозможно, любая из двух обходных мер разрывает цепочку эксплуатации:
Блокировка модуля act_pedit
На системах, не использующих правила pedit в tc, проверьте загрузку модуля (lsmod | grep act_pedit) и заблокируйте его:
echo 'install act_pedit /bin/true' | sudo tee /etc/modprobe.d/disable-act_pedit.confОтключение непривилегированных пользовательских пространств имён
На RHEL: user.max_user_namespaces=0. На Debian/Ubuntu: kernel.unprivileged_userns_clone=0. Эта мера убирает возможность получения CAP_NET_ADMIN, необходимого эксплойту, но нарушает работу контейнеров без root-привилегий, некоторых CI-песочниц и браузерных песочниц. Обязательно протестируйте перед применением в продуктивной среде.
Если подозревается компрометация
Сброс страничного кеша (echo 3 > /proc/sys/vm/drop_caches) удаляет отравленную копию из памяти, но не устраняет последствия уже полученного root-доступа. Если есть основания подозревать эксплуатацию — считайте хост скомпрометированным и действуйте по процедуре реагирования на инцидент.
CVE-2026-46331 — очередная уязвимость класса порчи страничного кеша, где традиционные средства контроля целостности файлов бесполезны. Установите исправленное ядро на все затронутые системы, начиная с многопользовательских узлов и инфраструктуры CI/CD. Если обновление откладывается — заблокируйте модуль act_pedit сегодня: это одна команда, не требующая перезагрузки и не влияющая на работу подавляющего большинства систем.