Новая уязвимость локального повышения привилегий в ядре 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 в ядре хоста, поэтому эта уязвимость на них не распространяется.







