В сетевой подсистеме ядра Linux выявлена уязвимость (CVE-2023-42752), позволяющая через манипуляции с сетевыми сокетами в пространстве пользователя перезаписать содержимое памяти ядра, что потенциально может использоваться для организации выполнение непривилегированным пользователем своего кода на уровне ядра. Уязвимость является локальной и не может быть эксплуатирована удалённо по сети. Включение механизма защиты SMAP (Supervisor Mode Access Prevention) в ядре блокирует проблему.
Уязвимость вызвана целочисленным переполнением в функции ядра Linux “__alloc_skb“, обеспечивающей выделение памяти для структуры sk_buff (socket buffer), которая используется для хранения сетевых пакетов. Переполнение возникает из-за отсутствия должной проверки получаемых от пользователя параметров, применяемых для вычисления размера буфера.
Для совершения атаки непривилегированным пользователем требуется доступ к созданию пространств имён идентификаторов пользователя (user namespace), которые могут предоставляться, например, в изолированных контейнерах.
Уязвимость вызвана изменением, внесённым в ядро 6.2, но данное изменение было бэкпортировано во все LTS-ветки, поэтому уязвимость проявляется и в более ранних выпусках поддерживаемых стабильных веток ядра. Исправления, блокирующие уязвимость приняты в состав стабильных веток ядра 5 сентября и вошли в состав выпусков 6.1.53, 6.5.3, 6.4.16, 5.15.132 и 5.10.195. Проследить за исправлением уязвимости в дистрибутивах можно на страницах: Debian, Ubuntu, Gentoo, RHEL, Fedora, SUSE/openSUSE, Arch.