Уязвимости в ядре Linux, затрагивающие ksmbd, ktls, uio и сетевой стек

В модуле ksmbd, предлагающем встроенную в ядро Linux реализацию файлового сервера на базе протокола SMB, выявлены две уязвимости, которые позволяют удалённо без прохождения аутентификации добиться выполнения своего кода с правами ядра или определить содержимое памяти ядра на системах с активированным модулем ksmbd. Проблемы проявляются начиная с ядра 5.15, в состав которого был принят модуль ksmbd. Уязвимости устранены в обновлениях ядра 6.7.2, 6.6.14, 6.1.75 и 5.15.145. Проследить за исправлением в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Первая уязвимость (CVE-2024-26592) может привести к выполнению кода атакующего с правами ядра при отправке специально оформленных неутентифицированных TCP-запросов к серверу ksmbd. Уязвимость вызвана некорректной организацией блокировки объектов в коде установки и прерывания TCP-соединения к ksmbd, позволяющей создать условия для обращения к уже освобождённой памяти (use-after-free).

Вторая уязвимость (CVE-2024-26594) приводит к утечке содержимого памяти ядра при обработке некорректного mech-токена в отправленном клиентом запросе на установку сеанса. Уязвимость вызвана некорректной обработкой данных с SMB2 Mech-токеном и приводит к чтению данных из области за пределом выделенного буфера.

Дополнительно можно отметить ещё несколько уязвимостей в ядре Linux:

  • CVE-2023-52439 – обращение к уже освобождённой памяти (use-after-free) в функции uio_open подсистемы uio, потенциально позволяющее локальному пользователю выполнить свой код с правами ядра.
  • CVE-2024-26582 – обращение к уже освобождённой памяти (use-after-free) в реализации TLS на уровне ядра (ktls), потенциально позволяющее повысить свои привилегии при выполнении операций расшифровки.
  • CVE-2024-0646 – запись в область памяти вне буфера в подсистеме ktls при определённой локальной манипуляции с сокетом ktls при помощи функции splice. Уязвимость потенциально позволяет поднять свои привилегии в системе.
  • CVE-2023-6932 – состояние гонки в реализации протокола IGMP (Internet Group Management Protoco) в IPv4-стеке, приводящее к обращению к уже освобождённой памяти (use-after-free). Уязвимость потенциально позволяет локальному пользователю поднять свои привилегии в системе.
  • CVE-2023-52435 – переполнение MSS в функции skb_segment() сетевого стека ядра.
  • CVE-2024-26601 – ошибка в коде освобождения блоков в ФС ext4 может использоваться для повреждения buddy bitmap.
  • CVE-2024-26598 – обращение к уже освобождённой памяти (use-after-free) в гипервизоре KVM.
Release. Ссылка here.