GhostLock, BadEpoll и Januscape — уязвимости в ядрото на Linux, позволяващи получаване на права root и заобикаляне на изолацията KVM

Разкрита е информация за уязвимостта (CVE-2026-43499) в ядрото на Linux, получило кодовото име GhostLock, което позволява на непривилегирован локален потребител да получи права root в системата и да излезе от изолирани контейнери. При използване в комбинация с други уязвимости в браузърите, разкритият проблем може да се използва за отдалечено изпълнение на код с права root при отваряне на специално оформена уеб страница. Проблемът се проявява от ядрото на Linux 2.6.39 (2011 година).

Твърди се, че уязвимостта може да бъде експланирана във всички дистрибуции, издадени през последните 15 години. Има работещ експлойт, създателите на който са получили от Google награда от $92337 за успешно повишаване на привилегиите в среда с ядрото KernelCTF (Capture the Flag), включваща допълнителни пачове за блокиране на типичните методи на работа на експлойтите. Степента на успешност на експлойта е оценена на 97%. Уязвимостта е идентифицирана с помощта на AI инструмента VEGA.

Пачът с поправката е приет в кодовата база на ядрото на 21 април и е включен в изданията на ядрото 7.1.0, 6.18.36, 6.12.95, 6.6.144 и 6.1.177. Статусът на премахване на уязвимостите в дистрибуциите може да бъде оценен на тези страници: Debian, Ubuntu, SUSE/openSUSE, RHEL, AlmaLinux, Gentoo, Arch, Fedora. Обходни пътища за блокиране на проблема липсват.

Уязвимостта присъства в реализацията на блокировките futex и е предизвикана от достъп до паметта след нейното освобождаване, която възниква при работа на механизма за наследяване на приоритети, предотвратяващ инверсия на приоритетите (блокиране на задача с висок приоритет заради изчакване на освобождаване на ресурс, зает от задача с нисък приоритет). В ситуация, когато поставянето на блокировка завършва с грешка, ядрото възстановява състоянието и извиква функция за почистване. При определени обстоятелства функцията за почистване се извиква не в подходящия момент и освобождава структура от данни на друга задача, след което остава висящ указател (dangling pointer), сочещ към вече освободена памет.

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

В предложеното експлоатиране се извършва презапис на указателя в таблицата с функции inet6_protos[IPPROTO_UDP], след което на loopback интерфейса по IPv6 се изпраща UDP пакет, при обработката на който се извиква обработчик, указателят на който е заменен на предишния етап. За получаване на root достъп, кодът на експлоатацията регистрира в /proc/sys/kernel/core_pattern своя обработчик, извикван с права root при краха на процеси.

Освен разгледаната проблема, в ядрото на Linux са открити още няколко опасни уязвимости:

  • Januscape (CVE-2026-53359) — достъп до памет след нейното освобождаване (use-after-free) в компонентите на хипервизора KVM, изпълнявани на страната на виртуалната машина за еймулиране на блока за управление на паметта (MMU) и транслации на адреси между хоста и гостуващата система. Уязвимостта се проявява на системи с процесори Intel и AMD и позволява достъп с права root до хост средата при наличие на root достъп в гостуващата система.

    За сваляне е наличен прототип на експлоита, повреждащ съдържанието на структурата от данни на страната на хост системата, използвана при транслацията на адреси. Публикуваният експлоит води до аварийно завършване на хост системата, но според заявката на открития изследовател, той също е създал експлоит за изпълнение на код на страната на хост средата с права root, но все още не го публикува, за да даде време за инсталиране на обновления.

    Проблемът е предизвикан от грешка, допусната преди 16 години и е отстранен в обновленията 7.1.3, 6.18.38, 6.12.95, 6.6.144 и 6.1.177. Статусът на отстраняването на уязвимостите в дистрибуциите може да бъде оценен на следните страници: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora. За откритие на уязвимостта, изследователят получи от Google награда от 250 хиляди долара в рамките на инициативата kvmCTF.

    За изход от гостуващата система на сървъри В процесорите ARM64 изследваната от същия изследовател уязвимост ITScape (CVE-2026-46316) е причинена от състезателно състояние в кода на емулатора vGIC-ITS (Interrupt Translation Service) в KVM. За тази проблема също е публикуван прототип на експлоита.

  • Bad Epoll (CVE-2026-46242) — състезателно състояние, водещо до достъп до памет след нейното освобождаване в подсистемата на ядрото epoll. Уязвимостта позволява на локален непривилегирован потребител да изпълни код с права на root. Проблемът е забележителен, тъй като позволява атака не само на класически Linux дистрибуции, но и на фърмуери на базата на платформата Android, и не е блокиран от sandbox изолация в Chrome. Работещ експлоит беше демонстриран на състезанието kernelCTF (Google изплати на автора $71337). Надеждността на експлоита е оценена на 99%.

    Проблемът се проявява от ядрото на Linux 6.4 (2023 година). За проблема е съобщено на разработчиците на ядрото на 17 февруари, но корекцията успя да бъде разработена след няколко неуспешни опити едва на 24 април. Проблемът е отстранен в ядрото 6.18.24, 6.12.83, 6.6.136. Статусът на отстраняване на уязвимости в дистрибуциите може да бъде оценен на тези страници: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

  • CVE-2026-46215 — достъп до памет след нейното освобождаване в реализацията на ioctl DRM_IOCTL_GEM_CHANGE_HANDLE в подсистемата DRM (Direct Rendering Manager). Локален потребител, който има достъп до устройствата /dev/dri/renderD* (услугата systemd-logind предоставя достъп на всички потребители при стартиране на графичната сесия в всички основни дистрибуции), може да получи права на root в системата. Съществува експлоит. Проблемът се проявява от ядрото 6.18 и е отстранен в актуализациите 7.0.9 и 6.18.32. Статусът на отстраняване на уязвимости в дистрибуциите може да бъде оценен на тези страници: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster