В сетевой подсистеме ядра 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.
Источник: OpenNET.