В ядре Linux нашли уязвимость из-за ошибочного символа

от автора

Исследователи Exodus Intelligence выявили уязвимость в ядре Linux, которая позволяет повысить права доступа для недоверенных пользователей до уровня root. Она вызвана одним ошибочным символом в коде ядра.

Уязвимость CVE-2026-23111 находится в nf_tables. Это подсистема ядра Linux, которая обеспечивает возможности фильтрации пакетов. nf_tables используется для управления правилами брандмауэра и заменяет более старые подсистемы, такие как iptables, ip6tables, arptables и ebtables.

Если заменить ошибочно введённый восклицательный знак в коде nf_tables, то возникает уязвимость типа use-after-free, которая повреждает память, размещая вредоносный код по адресам памяти, не освобождённым должным образом от старого содержимого. Баг может использоваться непривилегированным пользователем или процессом для повышения прав доступа в системе до уровня root.

Уязвимость базируется на процессе удаления определений в рамках фреймворка nf_tables, которые решают, соответствует ли пакет правилу, требующему выполнения определённого действия. В нём могут использоваться элементы catchall, которые действуют как подстановочный знак, если поиск не находит совпадений ни с одним другим элементом в наборе.

Когда карта определений удаляется из памяти, элементы catchall деактивируются, а счётчик ссылок цепочки уменьшается, но при возникновении ошибок удаление может быть отменено, а счётчик — увеличен. Эксплойт может уменьшать значение переменной произвольное количество раз, а затем удалить и освободить цепочку, когда некоторые объекты всё ещё указывают на неё.

«Здесь мы рассмотрели, как один некорректный восклицательный знак привёл к уязвимости использования памяти после освобождения, которую может использовать непривилегированный пользователь в Debian и Ubuntu для повышения привилегий до уровня root. Хотя эксплойт многократно активирует уязвимость использования памяти после освобождения (use-after-free), приводящую к утечке базового адреса ядра, утечке адресов кучи и перехвату потока управления, тесты стабильности показали стабильность более 99 % в неактивной системе», — заявили в Exodus Intelligence.

Баг исправили в ядре Linux в феврале. Компания FuzzingLabs продемонстрировала эксплойт в апреле, а Exodus Intelligence включила свой собственный эксплойт, который работал на Debian и Ubuntu.

Ранее Arm опубликовала информацию об уязвимости в своих процессорах, которая позволяет осуществить запись в ресурсы с более высоким уровнем исключений (Exception Level). Потенциально злоумышленник может добиться повышения привилегий в системе. Для блокировки уязвимости обходным путём для ядра Linux вышел патч, который пока не вошёл в состав корректирующих обновлений.

ссылка на оригинал статьи https://habr.com/ru/articles/1047564/