CVE-2026-97559 in LinuxИнформация

Сводка

по VulDB • 25.09.2026

В ядре Linux была устранена следующая уязвимость:

smb: клиент: отказывать в переписывании DACL, если новый DACL превышает 64 КБ

Функции `replace_sids_and_copy_aces()` и `set_chmod_dacl()` накапливают размер создаваемого ими DACL в переменную типа u16. Эта аккумуляторная переменная может переполняться (wrap around).

`validate_dacl()` ограничивает количество ACE (`num_aces`) значением `(dacl_size - sizeof(struct smb_acl)) / 20`, то есть 3276 для максимально возможного размера DACL, тогда как каждое переписанное ACE может увеличиться до `sizeof(struct smb_ace)` (76 байт), когда его SID заменяется на такой, который содержит максимальное количество под-авторитетов (`SID_MAX_SUB_AUTHORITIES`). Таким образом, в худшем случае размер составляет `sizeof(struct smb_acl) + 3276 * 76 = 248984` байта, что значительно превышает возможности u16. Переполнение (wraparound) достигается при наличии 863 ACE.

После переполнения значение `ndacl_ptr->size` становится бессмысленным, а смещение указывает на произвольное место в массиве ACE. В результате происходит повреждение DACL, который затем отправляется серверу. Это не является записью за пределами буфера (out-of-bounds write), так как выделение памяти теперь покрывает расширение в худшем случае, поэтому записи всегда будут производиться внутри буфера.

Код изменен для использования типа u32 во внутренних операциях и возврата `-EOVERFLOW` при переполнении. Операция должна быть отклонена, поскольку DACL может содержать не более 2^16 - 1 байт в сетевом потоке (on the wire), а большие DACLы не могут быть представлены корректно.

Функция `set_chmod_dacl()` содержит ту же уязвимую логику и исправлена аналогичным образом. Она переполняется, когда исходный DACL находится примерно в 380 байтах от предела в 64 КБ, но режим отказа (failure mode) идентичен предыдущему случаю.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Ответственный

Linux

Резервировать

24.09.2026

Раскрытие

25.09.2026

Модерация

принято

Вход

VDB-410002

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Do you want to use VulDB in your project?

Use the official API to access entries easily!