Четыре локальных root-уязвимости в ядре Linux: DirtyAH6, TUNderflow, PPPoEject и DiagSpill
После истечения согласованного с linux-distros эмбарго исследователь Асим Манизада опубликовал сведения о четырёх уязвимостях локального повышения привилегий (LPE) в ядре Linux. Все они были переданы в security@kernel.org и профильным сопровождающим в середине июля, а лежащие в их основе ошибки существуют, по оценке автора, от 10 до 21 года.
Уязвимости получили запоминающиеся имена и идентификаторы: DirtyAH6 (CVE-2026-80844), TUNderflow (CVE-2026-81000), PPPoEject (CVE-2026-68121) и DiagSpill (CVE-2026-74469). Для каждой подготовлен работающий PoC, дающий переход от обычного пользователя к выполнению кода с правами root.
Как они устроены
Первые три требуют либо непривилегированных user/network namespaces, либо конкретных привилегий (CAP_NET_ADMIN, CAP_NET_RAW) в контролируемом злоумышленником сетевом пространстве имён. DiagSpill выделяется: ему не нужны ни namespaces, ни особые CAP — достаточно, чтобы в системе были доступны SCTP и sctp_diag.
Природа ошибок классическая для сетевого стека: DirtyAH6 связана с некорректной проверкой поля segments_left в заголовке маршрутизации IPv6, что приводит к обращению за пределы буфера в memmove(). TUNderflow вызывает переполнение при вычислении headroom для устройства TUN. PPPoEject использует «висячий» указатель на область skb, освобождённую внутри dev_hard_header(). DiagSpill эксплуатирует переполнение 16-битного счётчика транспортов SCTP: при 65 536 транспортах он обнуляется, и sctp_diag выплёскивает около 8 МиБ данных за пределы Netlink-ответа.
Автор подчёркивает, что перечисленные предусловия не экзотичны — соответствующие модули и пути присутствуют в обычных сборках дистрибутивов. AppArmor и SELinux в его тестах эксплойты не блокировали. Все четыре бага способны повредить и ядро хоста из контейнера, что теоретически открывает путь к выходу из изоляции, хотя этот сценарий Манизада не доводил до конца.
Удалённый вектор и защита
DirtyAH6 и DiagSpill при определённых условиях достижимы удалённо. Если система работает IPv6-маршрутизатором и добавляет AH в транспортном режиме, DirtyAH6 превращается как минимум в удалённый отказ в обслуживании; в лабораторных условиях автору удалось довести её до удалённого root, но чисто дистанционная реализация выглядит крайне сложной. DiagSpill при включённых ASCONF/ADD-IP (по умолчанию отключены) грозит удалённым крашем, но не полным захватом.
Исправления уже разошлись по стабильным веткам. Первыми релизами, содержащими все четыре патча, стали 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50 и 7.2.4. В качестве временных мер автор советует отключить непривилегированные user namespaces, а также ненужные модули AH6, TUN, PPPoE и SCTP/sctp_diag.
Источник: Lobsters
Комментарии
Войдите, чтобы комментировать.