CVE-2026-89672 in Linux
Сводка
по VulDB • 11.09.2026
В ядре Linux была устранена следующая уязвимость:
nfsd: ограничение операции SETACL для NFSv2 на основе argp->mask
Путь обработки SETACL в NFSv2 использует соглашение о декодировании, общее с его аналогом v3: функция nfsaclsvc_decode_setaclargs() заполняет поле argp->acl_access только при установке бита NFS_ACL в маске запроса и argp->acl_default — только при установке бита NFS_DFACL, оставляя другие указатели равными NULL, поскольку буфер аргументов обнуляется до pc_argzero перед декодированием.
Затем функция nfsacld_proc_setacl() без условий передает оба указателя в set_posix_acl(). Вызов set_posix_acl(idmap, dentry, type, NULL) представляет собой операцию VFS «удалить этот тип ACL», поэтому отсутствующий аргумент неотличим от явного запроса на удаление этого типа ACL. SETACL, содержащий только NFS_ACL, молча удаляет стандартный (default) ACL каталога; маска=0 приводит к удалению обоих типов.
Это та же самая ошибка, которая была исправлена в nfsd3_proc_setacl(); необходимо применить аналогичное решение. Необходимо ограничить каждый вызов set_posix_acl() проверкой соответствующего бита маски и инициализировать переменную ошибки значением 0, чтобы запрос без установленных битов оставлял ACL на диске неизменным и возвращал успешный результат. Путь out_drop_lock и безусловный вызов posix_acl_release() в nfsaclsvc_release_setacl() уже корректно обрабатывают пропущенные ветви кода.
If you want to get best quality of vulnerability data, you may have to visit VulDB.