Copy Fail: Критична уязвимост в Linux ядрото дава Root достъп върху всички големи дистрибуци от девет години

Най-четени

Калин Карабойчев
Калин Карабойчев
Калин Карабойчев е управител на Kaldata.com - най-големият български IT портал. Повече от 25 години се занимава активно с разработка и популяризация на услуги в българския интернет.

Както вече съобщихме по-рано днес в множество Linux дистрибуции е открита критична уязвимост: 732 байта код дават root-права на всеки, а сега добавяме и повече техническа информация.

Компанията Theori публикува информация за изключително опасна логическа грешка, засягаща Linux ядрото през последните 9 години. Уязвимостта, наречена „Copy Fail“, позволява на непривилегирован локален потребител да получи пълен root контрол над системата чрез изпълнението на компактен 732-байтов Python скрипт.

Същността на проблема

Copy Fail е логическа грешка в криптографския подсистем на Linux ядрото, конкретно в authencesn шаблона. За разлика от предишни Linux уязвимости като Dirty Cow или Dirty Pipe, този проблем не изисква race condition или специфични за версията офсети. Експлойтът работи директно и надеждно на всяка засегната система.

Уязвимостта позволява непривилегирован потребител да запише 4 контролирани байта в page cache на всеки четим файл в системата. Тъй като ядрото чете от page cache при зареждане на изпълними файлове, това на практика означава възможност за модифициране на setuid binaries, без да се засичат промени на файловата система.

Технически детайли

Проблемът произлиза от оптимизация, въведена през август 2017 г. с commit 72548b093ee3, която позволява AEAD операции да се извършват „in-place“ (на място) вместо да копират данни. Това решение поставя page cache страници в writable scatterlist, разделени от легитимната област за запис само с offset граница.

Експлойтът използва верига от три компонента:

  • AF_ALG – интерфейсът на Linux за достъп до криптографското API от userspace.
  • splice() – системно извикване за прехвърляне на данни между файлови дескриптори.
  • authencesn – AEAD wrapper, използван от IPsec за Extended Sequence Number поддръжка.

Когато authencesn обработва декриптиране, той извършва 4-байтов „scratch“ запис на seqno_lo полето (байтове 4-7 от AAD) в дестинацията. Ако тази дестинация съдържа страница от page cache на друг файл (инжектиран чрез splice), записът корумпира кешираното съдържание на този файл.

Засегнати системи

Уязвимостта засяга практически всички Linux дистрибуции, издадени между 2017 г. и публикуването на патча през април 2026 г. Директно потвърдени са:

  • Ubuntu 24.04 LTS (kernel 6.17.0-1007-aws)
  • Amazon Linux 2023 (kernel 6.18.8-9.213.amzn2023)
  • RHEL 14.3 (kernel 6.12.0-124.45.1.el10_1)
  • SUSE 16 (kernel 6.12.0-160000.9-default)

Дистрибуции като Debian, Arch, Fedora, Rocky Linux, Alma Linux и Oracle Linux също са уязвими.

Кой е най-застрашен?

Висок риск: Multi-tenant Linux хостове, Kubernetes клъстери, CI runners (GitHub/GitLab), Cloud SaaS с потребителски код. Тук споделеният page cache позволява компрометиране между отделни контейнери.

Среден риск: Стандартни production сървъри с единичен tenant и вътрешни системи, където shell достъпът е ограничен само до технически екипи.

Нисък риск: Лични лаптопи и работни станции, тъй като там атакуващият обикновено вече разполага с физически или локален достъп.

Как работи експлойтът

Публикуваният proof-of-concept е 10-редов Python скрипт от 732 байта, който изпълнява следните стъпки:

  1. Отваря AF_ALG socket и го свързва към authencesn(hmac(sha256),cbc(aes)).
  2. Подготвя shellcode payload.
  3. Използва splice() за инжектиране на page cache страници в криптографската операция.
  4. Модифицира setuid binary (по подразбиране /usr/bin/su).
  5. Извиква модифицирания binary за получаване на root shell.

Експлойтът работи идентично на всички основни дистрибуции без необходимост от промени в кода.

Откриването – AI-асистирана уязвимост

Особено тревожен е фактът, че уязвимостта е открита от AI системата Xint Code за около час сканиране на Linux crypto/ подсистемата. Според Theри, единственият операторски промпт е бил:

„This is the linux crypto/ subsystem. Please examine all codepaths reachable from userspace syscalls.“

Това представлява значителна промяна в ландшафта на киберсигурността. Преди години подобни kernel-grade уязвимости изискваха месеци ръчен анализ от експерти, докато сега AI системи могат да ги откриват за часове.

Защита и митигация

1. Първична защита – патчване

Основните дистрибуции вече издадоха патчове. Актуализирайте kernel пакета до версия, включваща mainline commit a664bf3d603d, който премахва проблемната оптимизация от 2017 г.

2. Временна защита (преди патч)

Деактивирайте algif_aead модула ръчно:

Bash

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true

Важно е да се отбележи, че критични системи като dm-crypt / LUKS, kTLS, IPsec, OpenSSL и SSH няма да се счупят, тъй като те използват криптографското API на ядрото директно, а не през AF_ALG.

3. Допълнителна защита за контейнери

Блокирайте създаването на AF_ALG сокети чрез seccomp профил:

JSON

{
  "defaultAction": "SCMP_ACT_ALLOW",
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ"
        }
      ]
    }
  ]
}

Последици за индустрията

Copy Fail очертава няколко важни тенденции в сектора:

  • AI променя икономиката на уязвимостите: Откриването на критични дупки в ядрото вече не е скъпо и времеемко начинание, достъпно само за елитни хакери.
  • Shared-kernel изолацията е по-рискова: Системи, разчитащи на namespace/cgroup (като стандартните Docker контейнери), са уязвими. Алтернативи като AWS Firecracker или gVisor са защитени, защото не споделят хост ядрото.
  • Необходимост от бързина: Автоматизацията на откриването изисква от организациите по-бързи цикли на пачване и по-добра инфраструктура за реагиране.

Сравнение с предишни големи уязвимости

Спрямо Dirty Cow (2016): Dirty Cow изискваше труден за постигане race condition в CoW механизма, често налагаше множество опити и понякога водеше до срив на системата. Copy Fail е директна логическа грешка със 100% надеждност.

Спрямо Dirty Pipe (2022): Dirty Pipe беше силно зависим от версията на ядрото и изискваше прецизна манипулация на pipe буферите. Copy Fail е универсална – един и същ скрипт работи навсякъде, където кодът е наличен.

Ключови предимства на Copy Fail за атакуващия: Уязвимостта предлага 100% надеждност, изключително малък код (732 байта) и пълна преносимост между дистрибуциите.

Timeline на разкриването

  • 23 март 2026 – Докладване до Linux kernel security team
  • 24 март 2026 – Първоначално потвърждение от екипа
  • 1 април 2026 – Патч commit в mainline ядрото
  • 22 април 2026 – Присвояване на CVE-2026-31431
  • 29 април 2026 – Публично разкриване на детайлите

Заключение

Copy Fail е напомняне, че дори в най-стабилните системи могат да съществуват критични пропуски с години. Фактът, че AI система откри това за час, сигнализира за фундаментална промяна в сигурността.

За системните администратори препоръката е ясна: патчнете незабавно. Това не е теоретичен проблем – публичният експлойт работи безотказно и е тривиален за употреба.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

Абонирай се
Извести ме за
guest

10 Коментара
стари
нови оценка

Нови ревюта

Подобни новини