CVE-2026-31431 (Copy Fail): локальное повышение привилегий в ядре Linux

Новая уязвимость локального повышения привилегий в ядре Linux, раскрытая Theori/Xint, позволяет любому непривилегированному локальному пользователю получить права root с помощью скрипта Python размером 732 байта. Срабатывает с первой попытки без race condition и без адаптации под конкретную версию ядра. Оценка CVSS – 7.8, но для сред с общим ядром и мультитенантных сред фактическая критичность может быть выше.

Уязвимость

Логическая ошибка algif_aead ядра, добавленная в версии 4.14 в июле 2017 года, эксплуатируется через AF_ALG и splice(). Она обеспечивает детерминированную 4-байтовую запись в page cache любого доступного для чтения файла, в частности setuid-бинарных файлов.

  • Без race condition, без адаптации под конкретную версию ядра, срабатывает с первой попытки.
  • Файл на диске не меняется, поэтому средства контроля целостности файлов этого не обнаружат.
  • Page cache является общим в пределах хоста, что делает эту уязвимость основой для потенциального выхода за пределы контейнера на узлах Kubernetes из любого pod, который может создавать сокеты AF_ALG.

Кого это касается

Все версии ядра от 4.14 до исправления. Theori подтвердила получение root-прав на Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 и SUSE 16. Тот же эксплойт без изменений работает на Debian, Fedora, Rocky, Alma, Oracle и Arch. Исправление доступно в версиях 6.18.22, 6.19.12 и 7.0.

Что делать

К моменту раскрытия большинство дистрибутивов еще не поставляли исправленные ядра. Сначала следует применить смягчающие меры, а после появления исправления установить обновление.

1. Выключить algif_aead на каждом хосте:

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true

Безопасно для применения: это не влияет на dm-crypt, kTLS, IPsec, OpenSSL, SSH или криптографию kernel keyring. Воздействие существует только на приложения, которые явно используют OpenSSL afalg engine.

2. Заблокировать AF_ALG через seccomp для ненадежных рабочих нагрузок, таких как Kubernetes, среды выполнения CI и песочницы для агентов.

3. Установить обновление ядра сразу после того, как поставят исправление, а затем перезагрузить систему.

4. Приоритетность: мультитенантные узлы Kubernetes, затем среды выполнения CI, затем продакшн-серверы, затем рабочие станции.

Для команд, работающих с облачной инфраструктурой

CVE ядра не отображаются в образах SBOM, поэтому обнаружение должно выполняться на уровне узла. Запускаемые рабочие нагрузки под аппаратной виртуализацией (например Firecracker для Lambda или Fargate) или в средах с повторной реализацией ядра (таких, как gVisor или V8 isolates) не имеют доступа к механизму AF_ALG в ядре хоста, поэтому эта уязвимость на них не распространяется.

Ссылки

Подписаться на новости