Из-за ошибки уязвимость в Libnv была устранена во FreeBSD не полностью

В выпущенном в начале сентября исправлении уязвимости в библиотеке libnv выявлена логическая ошибка, из-за которой уязвимость не устранялась должным образом и система оставалась подвержена атаке. Библиотека libnv развивается проектом FreeBSD и используется в ядре и в приложениях из базовой системы для обработки списков в формате ключ/значение и для огранизации передачи данных при межпроцессном взаимодействии. Библиотека основана на алгоритме nvlist, применяемом в проекте OpenZFS, но во FreeBSD создана собственная реализация, поэтому уязвимость не затрагивает OpenZFS.

Уязвимость вызвана целочисленным переполнением, приводящим к выделению буфера, размером меньше, чем записываемый в буфер блок данных. Допущенная ошибка потенциально может использоваться для повышения своих привилегий путем перезаписи областей памяти в ядре и системных процессах, например, libnv применяется в libcasper при взаимодействии между привилегированным и не привилегированным кодом. Корректное исправление уязвимости (CVE-2024-45287) предложено в обновлениях 14.1-RELEASE-p5, 14.0-RELEASE-p11, 13.4-RELEASE-p1 и 13.3-RELEASE-p7, а также в форме патча.

Во FreeBSD также устранена уязвимость (CVE-2024-41721) в гипервизоре bhyve, потенциально позволяющая добиться выполнения кода в процессе, выполняемом на стороне хост-системы (обычно с правами root, но изолирован sandbox-ом на базе Capsicum), при манипуляциях внутри гостевой системы. Уязвимость присутствует в коде для эмуляции USB-контроллера XHCI и вызвана недостаточной проверкой границ буфера, что может привести к чтению данных из области вне буфера, а также потенциально к возможности записи в произвольную область памяти процесса. Атака может быть совершена при возможности запуска привилегированных процессов в гостевой системе. Уязвимость устранена в обновлениях FreeBSD 14.1-RELEASE-p5, 14.0-RELEASE-p11, 13.4-RELEASE-p1 и 13.3-RELEASE-p7.

Кроме того, можно отметить публикацию рабочего прототипа эксплоита и описания метода эксплуатации для выявленной в апреле уязвимости в ядре Linux (CVE-2024-26808). Проблема устранена в обновлениях ядра 5.10.210, 5.15.149, 6.1.76, 6.6.15, 6.7.3 и 6.8, и уже исправлена в основных дистрибутивах (Debian, Ubuntu, RHEL, SUSE, Fedora). Уязвимость вызвана обращением к уже освобождённой области памяти в функции nft_chain_filter в netfilter и позволяет добиться выполнения кода с правами root.

Изначально проблема рассматривалась как очередная потенциальная уязвимость в подсистеме Netfilter, вызванная обращением к памяти после её освобождения (например, в июньском обновлении ядра для Debian помимо CVE-2024-26808 было исправлено ещё 345 (!) потенциальных уязвимостей в пакете с ядром 5.10). Ежедневно в ядре выявляется до нескольких десятков новых уязвимостей, которые ранее не были отождествлены с проблемами с безопасностью (например, на прошлой неделе было помечено 68 уязвимостей).

Release. Ссылка here.