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

Сводка

по VulDB • 19.07.2026

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

ksmbd: исправлено чтение за пределами буфера в smb_check_perm_dacl()

Проверка прав доступа (ACE walk) в функции smb_check_perm_dacl() проверяет размер заголовка ACE и ограничивает значение sid.num_subauth величиной SID_MAX_SUB_AUTHORITIES, однако она никогда не проверяет, что ace->size действительно достаточно велик для размещения num_subauth суб-авторитетов до того, как compare_sids() разыменует их.

CIFS_SID_BASE_SIZE охватывает заголовок SID вплоть до массива sub_auth[] (не включая его), а offsetof(struct smb_ace, sid) соответствует заголовку ACE; таким образом, существующие проверки гарантируют только наличие 8-байтового базового блока SID, то есть нулевых суб-авторитетов. Затем compare_sids() читает ace->sid.sub_auth[i] для i в диапазоне [num_subauth, ace->sid.num_subauth). Локальные сравниваемые SIDs (sid_everyone, sid_unix_NFS_mode и результат id_to_sid()) всегда имеют как минимум одну суб-авторитету, а злоумышленник контролирует байты ревизии ACE и авторитета (которые находятся в пределах допустимого базового блока SID), поэтому он может сопоставить один из этих SIDs и принудительно вызвать чтение sub_auth.

Следовательно, специально созданный ACE с размером == 16 и num_subauth >= 1, размещенный в конце дескриптора безопасности, вызывает чтение за пределами кучи (heap out-of-bounds read) объемом до SID_MAX_SUB_AUTHORITIES * sizeof(__le32) байт после выделения памяти под pntsd. Дескриптор безопасности загружается функцией ksmbd_vfs_get_sd_xattr() в буфер размером точно по данным на диске (kzalloc(sd_size) в ndr_decode_v4_ntacl()), поэтому чтение происходит за пределами выделенной области. Неверный дескриптор может быть сохранен без изменений через SMB2_SET_INFO (DACL не нормализуется перед записью в расширенный атрибут security.NTACL), и срабатывание чтения произойдет при последующей проверке доступа SMB2_CREATE, что делает эту уязвимость доступной для аутентифицированного клиента на ресурсе общего использования (share), использующем ACL xattrs.

Добавлена отсутствующая проверка num_subauth против ace_size, дублирующая аналогичные проверки, уже присутствующие в родственных парсерах parse_dacl() и smb_inherit_dacl().

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

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

Linux

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

09.06.2026

Раскрытие

19.07.2026

Модерация

принято

Вход

VDB-380122

EPSS

0.00000

KEV

Нет

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

Низкий

Источники

Do you know our Splunk app?

Download it now for free!