CVE-2026-89485

CVE-2026-89485

Critical · published September 12, 2026

CVSS v3.1
9.8
EPSS
1%
Percentile
53.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

lockd: pin next file across nlm_inspect_file lock-drop

nlm_traverse_files() pins the current file with f_count++ across

a mutex_unlock for nlm_inspect_file(), but nothing pins the saved

next pointer. A concurrent nlm_release_file() can kfree the next

file during the unlock window, and the iterator dereferences freed

memory on the next loop step.

Pin both current and next before the lock-drop. Advance by

swapping the pinned cursors at the end of each iteration so next

is always held alive across the unlock.

Always call nlm_file_release() after dropping the iteration pin,

regardless of whether the file matched the predicate. Use

nlm_file_inuse(), which does a live walk of the inode lock list,

rather than the cached f_locks field, so skipped files that never

ran nlm_inspect_file() are evaluated correctly.

Because every file in a hash bucket is now pinned and released,

files skipped by the is_failover_file predicate that have no

locks, blocks, shares, or external references are deleted during

traversal. The old code never evaluated skipped files for

cleanup. The new behavior is intentional: such files are stale

and should not persist in the table.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00714 · 53.1th percentile
Published
2026-09-12T00:19Z
References (8)
EPSS history
Timeline
  • 13 SEP 03:23Z
    EPSS moved — → 0%
    epss
  • 11 SEP 19:43Z
    lockd: pin next file across nlm_inspect_file lock-drop
    cvelistv5