Description
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.
Published: 2026-09-11
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to possible arbitrary code execution or crash
Action: Apply patch
AI Analysis

Impact

The kernel bug occurs during traversal in the Network per‑inode file locks. The current implementation increments a reference on the current file does not pin the saved next pointer. A concurrent release frees the next file while the iterator still holds a reference, causing a use‑after‑free. The kernel may dereference freed memory on the next loop iteration, corrupting memory and potentially allowing a local privileged attacker to execute arbitrary code or crash the system. The weakness is a classic buffer dereference after memory has been freed (CWE‑825).

Affected Systems

All Linux kernel installations prior to the patch are affected. No specific kernel release numbers are provided, so until the patch commit is applied, every Linux host using the kernel should be considered vulnerable. The vulnerability is present in the kernel's lockd component and applies to all current releases until the update is applied.

Risk and Exploitability

The CVSS score is 5.3, and the EPSS score of less than 1% indicates a very low probability of exploitation. The vulnerability requires local or privileged access to the kernel because it depends on concurrent nlm_release_file() calls, which are normally invoked by processes that hold file locks. Therefore the exploitability is low to medium; a local attacker could potentially exploit the race condition. The risk remains moderate due to the potential for arbitrary code execution in kernel space.

Generated by OpenCVE AI on September 13, 2026 at 04:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the lockd use‑after‑free fix, as published by the vendor’s security advisories.
  • Ensure the updated kernel is currently active on all affected hosts; restart services or reboot if necessary.
  • Monitor system logs for kernel panics or unexpected crashes to confirm that the fix has resolved the issue.

Generated by OpenCVE AI on September 13, 2026 at 04:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 13 Sep 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Sat, 12 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description 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.
Title lockd: pin next file across nlm_inspect_file lock-drop
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-13T06:29:54.037Z

Reserved: 2026-09-11T19:38:34.712Z

Link: CVE-2026-89485

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:30.173

Modified: 2026-09-13T07:17:11.770

Link: CVE-2026-89485

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-11T19:43:39Z

Links: CVE-2026-89485 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T05:30:06Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference