Уязвимости в ядре Linux, затрагивающие nftables и модуль tcindex

В ядре Linux выявлены три уязвимости:

  • CVE-2023-31248 – уязвимость в подсистеме Netfilter, позволяющая локальному пользователю выполнить свой код на уровне ядра. Проблема вызвана обращением к памяти после её освобождения (use-after-free) в модуле nf_tables, обеспечивающем работу пакетного фильтра nftables, из-за отсутствия должной проверки состояния цепочки во время обработки операции поиска в цепочке функцией nft_chain_lookup_byid, что не исключает возвращение ссылки на уже удалённую цепочку nf_tables.

    Для проведения атаки требуется наличие доступа к nftables, который можно получить при наличии прав CAP_NET_ADMIN в любом пространстве имён идентификаторов пользователей (user namespace) или сетевом пространстве имён (network namespace), которые могут предоставляться, например, в изолированных контейнерах. Уязвимость проявляется начиная с ядра 5.9 (вызвавший уязвимость код не был бэкпортирован в более ранние LTS-ветки ядер). Исправление проблемы пока доступно только в виде патча.

  • CVE-2023-35001 – уязвимость в модуле nf_tables, позволяющая локальному пользователю выполнить свой код на уровне ядра. Уявзимость вызвана некорректными манипуляциями с указателем при обработке выражений nft_byteorder , которые могут привести к обращению к области памяти за пределами конца массива. Для эксплуатации требуется наличие прав CAP_NET_ADMIN. Проблема проявляется начиная с ядра 3.13 и пока устранена только в форме патча.
  • CVE-2023-1829 – уязвимость в классификаторе трафика tcindex, входящем в состав подсистемы QoS (Quality of service) ядра Linux. Уязвимость позволяет локальному пользователю выполнить код с правами ядра Linux. Возможность эксплуатации уязвимости продемонстрирована в Ubuntu. Проблема вызвана отсутствием проверки существования объекта до выполнения операции по очистке связанной с ним памяти, что приводит к двойному вызову функции free(). Проблема решена через удаление модуля tcindex из ядра, начиная с ветки 6.3. В пакете с ядром для Ubuntu и Debian уязвимость устранена в апреле. В качестве обходного пути защиты можно запретить автоматическую загрузку модуля cls_tcindex, добавив файл /etc/modprobe.d/blacklist-tcindex.conf со строкой “blacklist cls_tcindex”.
Release. Ссылка here.