Локальная уязвимость в ядре Linux, эксплуатируемая через nftables

В подсистеме Netfilter выявлена уязвимость (CVE-2023-6817), потенциально позволяющая локальному пользователю повысить свои привилегии в системе. Проблема вызвана обращением к памяти после её освобождения (use-after-free) в модуле nf_tables, обеспечивающем работу пакетного фильтра nftables. Уязвимость проявляется начиная с версии ядра Linux 5.6. Исправление уязвимости предложено в тестовом выпуске ядра Linux 6.7-rc5 и перенесено в актуальные стабильные ветки 5.10.204, 5.15.143, 6.1.68 и 6.6.7.

Проблема вызвана ошибкой в функции nft_pipapo_walk, из-за которой в процессе перебора элементов PIPAPO (Pile Packet Policies) не проверялось наличие дубликатов, что приводило к двойному освобождению памяти. Для проведения атаки требуется наличие доступа к nftables, который можно получить при наличии прав CAP_NET_ADMIN в любом пространстве имён идентификаторов пользователей (user namespace) или сетевом пространстве имён (network namespace), которые могут предоставляться, например, в изолированных контейнерах. Для тестирования своих систем опубликован прототип эксплоита.

Release. Ссылка here.