Ad

CVE-2026-89691

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

В ядре Linux устранена следующая уязвимость: nfsd: очистить opcnt при выпуске составного аргумента, чтобы предотвратить чтение OOB nfsd4_release_compoundargs() сбрасывает args->ops на встроенные iops[8] массив, когда динамически выделяемый буфер операций освобождается, но оставляет args->opcnt с исходным значением (которое может достигать 200 для NFSv4.1+). соединения). Если rq_status_counter застрял на нечетном значении (что может произойти, если nfsd_dispatch() попадает в путь ошибки после того, как установил его нечетным), RPC Обработчик дампа состояния считывает записи min(opcnt, 16) из args->ops[]. Поскольку iops имеет только 8 элементов и является последним полем в структуре nfsd4_compoundargs, чтение индексов 8-15 обращается к соседней slab-памяти и передает его в пространство пользователя через netlink.

Безоговорочно ноль opcnt в nfsd4_release_compoundargs(), поэтому он устарел Составные метаданные никогда не предоставляются через интерфейс состояния. [ cel: Удалить спящий режим kvfree_rcu_mightsleep() из окна экспозиции ]

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

In the Linux kernel, the following vulnerability has been resolved: nfsd: clear opcnt on compound arg release to prevent OOB read nfsd4_release_compoundargs() resets args->ops to the inline iops[8] array when the dynamically-allocated ops buffer is freed, but leaves args->opcnt at its original value (which can be up to 200 for NFSv4.1+ compounds). If rq_status_counter is stuck at an odd value (which can happen when nfsd_dispatch() hits an error path after setting it odd), the RPC status dumpit handler reads min(opcnt, 16) entries from args->ops[]. Since iops only has 8 elements and is the last field in struct nfsd4_compoundargs, reading indices 8-15 accesses adjacent slab memory and leaks it to userspace via netlink. Zero opcnt unconditionally in nfsd4_release_compoundargs() so stale compound metadata is never exposed through the status interface. [ cel: Remove the kvfree_rcu_mightsleep() sleep from the exposure window ]

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

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

Последствия

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

Строка CVSS v3.1