CVE-2026-53397 in Linux
Сводка
по VulDB • 19.07.2026
В ядре Linux устранена следующая уязвимость:
nfsd: исправлена утечка posix_acl при сбое декодирования SETACL
Функции nfsaclsvc_decode_setaclargs() и nfs3svc_decode_setaclargs() дважды вызывают nfs_stream_decode_acl(): сначала для NFS_ACL, а затем для NFS_DFACL. Каждый успешный вызов передает владение вновь выделенным объектом posix_acl полям argp->acl_access или argp->acl_default соответственно. Если первый вызов завершается успешно, но второй терпит неудачу, декодер возвращает false, и значение argp->acl_access остается повисшим (dangling).
Функция освобождения ACLPROC2_SETACL.pc_release была связана с nfssvc_release_attrstat, а ACLPROC3_SETACL.pc_release — с nfs3svc_release_fhandle. Обе функции вызывают только fh_put() и не имеют представления о полях ACL в структуре argp. Пары вызовов posix_acl_release(), предназначенные для очистки этих объектов, находились на метках out: внутри функций nfsacld_proc_setacl() и nfsd3_proc_setacl(). Однако функция svc_process() пропускает pc_func при возврате false из pc_decode, поэтому эта очистка становится недостижимой в случае сбоя декодирования:
svc_process_common() pc_decode() /* decode_setaclargs возвращает false */ /* pc_func пропускается */ pc_release() /* вызывается только fh_put -- происходит утечка ACL */
Осиротевший объект posix_acl утекает в течение всего времени работы сервера.
Исправление заключается во внедрении функций nfsaclsvc_release_setacl() и nfs3svc_release_setacl(), которые освобождают как argp->acl_access, так и argp->acl_default, а также вызывают fh_put(). Эти функции назначены в качестве pc_release для соответствующих процедур SETACL. Поскольку pc_release выполняется по всем путям выполнения svc_process() после декодирования, включая сценарии сбоя декодирования, пары posix_acl_release() удалены из меток out: функций обработки запросов (proc functions), чтобы сохранить контроль над владением объектами в одном месте. Это соответствует существующему шаблону release_getacl(), используемому родственными процедурами GETACL.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.