Ad

CVE-2026-89672

CRITICAL CVSS 3.1: 9,1 EPSS 0.52%
Обновлено 14 сентября 2026
Linux
Параметр Значение
CVSS 9,1 (CRITICAL)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: nfsd: ворота nfs2 setacl по argp->mask Путь SETACL NFSACL v2 разделяет соглашение о декодировании, используемое его Родственный брат 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, автоматически удаляет каталог по умолчанию. ACL; маска=0 удаляет оба.

Это тот же самый дефект, только что исправленный в nfsd3_proc_setacl(); применить то же средство. Заблокируйте каждый вызов set_posix_acl() по его биту маски и инициализировать ошибку равным 0, чтобы запрос без установленного бита ушел ACL на диске остаются нетронутыми и возвращает успех. out_drop_lock путь и безусловный posix_acl_release() в nfsaclsvc_release_setacl() уже допускает пропущенные руки.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: nfsd: gate nfs2 setacl by argp->mask The NFSACL v2 SETACL path shares the decoder convention used by its v3 sibling: nfsaclsvc_decode_setaclargs() fills in argp->acl_access only when NFS_ACL is set in the request mask and argp->acl_default only when NFS_DFACL is set, leaving the other pointer NULL because the argument buffer is zeroed up to pc_argzero before decode. nfsacld_proc_setacl() then hands both pointers to set_posix_acl() unconditionally. set_posix_acl(idmap, dentry, type, NULL) is the VFS "remove this ACL type" operation, so an omitted arm is indistinguishable from an explicit request to delete that ACL. A SETACL carrying only NFS_ACL silently strips the directory's default ACL; mask=0 strips both. This is the same defect just fixed in nfsd3_proc_setacl(); apply the same remedy. Gate each set_posix_acl() call on its mask bit and initialize error to 0 so that a request with neither bit set leaves the on-disk ACLs untouched and returns success. The out_drop_lock path and the unconditional posix_acl_release() in nfsaclsvc_release_setacl() already tolerate the skipped arms.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v3.1