Исходный отчёт
- Сайт уязвимости: https://copy.fail/
- Технический разбор Xint Code (Theori)
- PoC и issue tracker

Делимся нашими рекомендациями.
Copy Fail (CVE-2026-31431
Атака:
AF_ALG), который включён в дефолтных конфигурациях практически всех мейнстрим-дистрибутивов;crypto/ (модуль algif_aead);AF_ALG;splice() в связке с сокетами AF_ALG.Уязвимость напрямую не затрагивает следующие пути использования крипто-API: dm-crypt / LUKS, kTLS, IPsec/XFRM, in-kernel TLS, OpenSSL/GnuTLS/NSS в дефолтных сборках, SSH, kernel keyring crypto — все они работают с in-kernel crypto API напрямую и не проходят через AF_ALG.
Уязвимыми являются ядра Linux, собранные в интервале с 2017 года (момент внедрения in-place оптимизации algif_aead) до момента включения исправляющего патча. Поскольку модуль algif_aead входит в дефолтную конфигурацию ядра большинства дистрибутивов, эксплуатация возможна «из коробки».
Уязвимость даёт возможность при каждом запросе перезаписать 4 байта по выбранному смещению. Это позволяет атакующему через отправку серии запросов изменить в страничном кеше содержимое любого файла в системе, доступного для чтения, предварительно добившись его помещения в кеш. Так как при любых операциях чтения из файлов содержимое отдаётся в первую очередь из страничного кеша, после замены информации в страничном кеше ядро или процесс при чтении данных из файла получит не фактические, а подменённые данные. Это может применяться для подстановки кода в запускаемые исполняемые файлы или загружаемые разделяемые библиотеки. При этом страница не помечается как dirty для writeback, поэтому файл на диске не меняется и FIM-инструменты модификацию пропускают.
Для выполнения кода с правами root достаточно добиться изменения страничного кеша для любого исполняемого файла с флагом suid root. В предложенном эксплоите выполняется чтение исполняемого файла /usr/bin/su и модификация загруженного в страничный кеш содержимого этого файла для подстановки в него своего кода. При последующем запуске утилиты «su» в память будет загружен не оригинальный исполняемый файл с накопителя, а изменённая копия из страничного кеша.
Linux kernel community (mainline). Уязвимость привнесена коммитом 2017 года, реализующим in-place оптимизацию в algif_aead. Исправляющий патч принят в mainline.
Базовая оценка: 7,8 HIGH
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Как можно скорее — отключить модуль algif_aead до установки патча ядра. Команда выполняется от имени root и применяется немедленно (новые сокеты AF_ALG создаваться не смогут, ранее открытые — продолжат работать до закрытия):
# echo "install algif_aead /bin/false" >
/etc/modprobe.d/disable-algif.conf
# rmmod algif_aead 2>/dev/null || true
Обновить ядро до версии, содержащей патч. Уязвимость присутствует в ядрах с 4.14 (commit 72548b093ee3, 2017 год) и устранена в следующих релизах:
fafe0fa2995ace42ee423e58a664bf3d603dДля контейнерных и sandbox-нагрузок целесообразно блокировать создание сокетов AF_ALG через seccomp независимо от состояния патчей.
Уязвимость устранена в ядре Linux 6.18.22, 6.19.12 и 7.0-rc7 (mainline-коммит a664bf3d603d)
Обновили конфигурации инфраструктуры Yandex Cloud для применения митигирующих мер.
Пользователям сервиса Yandex Managed Service for Kubernetes® нужно самостоятельно применить митигирующую меру на узлах своих кластеров. Для этого опубликован DaemonSetalgif_aead. Применение выполняется штатной командой:
$ kubectl apply -f copy-fail-mitigation-daemonset.yaml
Актуальные версии образов в Yandex Cloud Marketplace, содержащие митигирующие меры, в настоящее время готовятся к публикации.
Исходный отчёт
Если вам нужна дополнительная информация, пожалуйста, напишите на cloudtrust@yandex-team.ru.
Следим за рисками, отражаем атаки, делимся решениями. Всё о безопасности облачной инфраструктуры — практика, кейсы и инсайты от команды Yandex Cloud, которая защищает её каждый день.