CVE-2026-31403

NONE EPSS 0.03%
Обновлено 18 апреля 2026
Nfs
Параметр Значение
Поставщик Nfs
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: NFSD: сохранять сетевую ссылку на время существования /proc/fs/nfs/exports fd. Запись процедуры /proc/fs/nfs/exports создается при инициализации модуля. и сохраняется на протяжении всего срока службы модуля. Exports_proc_open() захватывает текущее пространство имен сети вызывающего абонента и сохраняет это svc_export_cache в seq->private, но не имеет ссылки в пространстве имен. Если пространство имен впоследствии будет удалено (например, уничтожение контейнера после того, как открыватель выполняет setns() для другое пространство имен), nfsd_net_exit() вызывает nfsd_export_shutdown() который освобождает кеш.

Последующие чтения на все еще открытом диске разыменуйте освобожденный кэш_деталь, пройдя по освобожденной хеш-таблице. Удерживайте ссылку на сеть структур в течение всего времени существования открытой дескриптор файла. Это предотвращает запуск nfsd_net_exit() -- и, таким образом, не позволяет nfsd_export_shutdown() освободить кеш -- пока открыт любой экспортный раздел. cache_detail уже хранит его сетевой указатель (cd->net, установленный функцией cache_create_net()), поэтому Exports_release() может получить его без дополнительных настроек для каждого файла. хранение.

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

In the Linux kernel, the following vulnerability has been resolved: NFSD: Hold net reference for the lifetime of /proc/fs/nfs/exports fd The /proc/fs/nfs/exports proc entry is created at module init and persists for the module's lifetime. exports_proc_open() captures the caller's current network namespace and stores its svc_export_cache in seq->private, but takes no reference on the namespace. If the namespace is subsequently torn down (e.g. container destruction after the opener does setns() to a different namespace), nfsd_net_exit() calls nfsd_export_shutdown() which frees the cache. Subsequent reads on the still-open fd dereference the freed cache_detail, walking a freed hash table. Hold a reference on the struct net for the lifetime of the open file descriptor. This prevents nfsd_net_exit() from running -- and thus prevents nfsd_export_shutdown() from freeing the cache -- while any exports fd is open. cache_detail already stores its net pointer (cd->net, set by cache_create_net()), so exports_release() can retrieve it without additional per-file storage.