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

landlock: Fix use-after-free of the source's parent directory

current_check_refer_path() reads old_dentry->d_parent without holding a
reference nor a lock on it, and then dereferences it in
collect_domain_accesses() and in the audit record.

A reference on a child does not pin its parent: __d_move() reassigns
dentry->d_parent and drops the reference the child held on its former
parent. hook_path_rename() is not affected because the rename path
calls lock_rename() before the hook, so the source cannot be reparented
under it. hook_path_link() has no such protection: filename_linkat()
holds a reference on the source dentry but neither locks nor references
its parent, so a concurrent rename(2) can reparent the source while
security_path_link() runs, and the former parent can then be removed and
freed while the hook walks it.

A process can trigger this after entering a Landlock domain that handles
at least one filesystem access right. The process can then race a
linkat(2) loop against rename(2) and rmdir(2):

BUG: KASAN: slab-use-after-free in collect_domain_accesses+0x278/0x290
Read of size 4 at addr ffff888160bd53f4 by task llrepro2/549
collect_domain_accesses+0x278/0x290
current_check_refer_path+0x952/0x1120
security_path_link+0x1be/0x320
filename_linkat+0x342/0x6d0
__x64_sys_linkat+0xfa/0x150
Freed by task 562:
kmem_cache_free+0x139/0x4c0
i_callback+0x4b/0x80
rcu_core+0x7dc/0x10a0

Take a reference on the dentry selected as the source parent, using
dget() for the common-mount-root case and dget_parent() otherwise.
Release it after the hierarchy walk and synchronous audit logging.

[mic: Clarify the caller, reachability, and reference handling]
Published: 2026-09-25
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Privileged Kernel Corruption
Action: Immediate Update
AI Analysis

Impact

The vulnerability arises from a use‑after‑free condition when a Landlock domain performs a link operation on a file whose parent directory may be re‑parented concurrently by a rename or rmdir. The routine reads the parent dentry without holding a reference or a lock, dereferencing a freed pointer. This can corrupt kernel memory, leading to a kernel panic or arbitrary code execution, a vulnerability that enables privilege escalation.

Affected Systems

All Linux kernel releases in which the Landlock security module contains the unpatched current_check_refer_path routine. The patch is applied in the upstream Linux kernel, so any kernel version prior to the commit containing the fix is affected.

Risk and Exploitability

The exploit requires local access to a process running within a Landlock domain that has at least one filesystem access right. The attacker must race a linkat(2) call against rename(2) or rmdir(2) so that the source dentry can be re‑parented while the kernel walks the directory hierarchy. The local attacker can then trigger a use‑after‑free that corrupts kernel memory, potentially leading to kernel panic or arbitrary code execution. The CVSS score of 7.8 indicates a high severity of memory corruption, and the EPSS score is < 1%, while the vulnerability is not listed in the CISA KEV catalog, indicating no publicly observed exploitation yet. However, the local attack vector and the severity score mean the risk remains significant.

Generated by OpenCVE AI on October 1, 2026 at 08:26 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that includes the fix from commit 2c6dc792538260a8087ac5b22c31b3b8e47c85d6 and reboot the system into the patched kernel.
  • Restrict the use of linkat, rename, and rmdir calls within any Landlock domain until the patch is deployed, for example by disabling such syscalls for the affected process or by limiting the domain’s allowed operations.
  • If Landlock is not required on the system, disable the Landlock security module entirely until an updated kernel is available.

Generated by OpenCVE AI on October 1, 2026 at 08:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Wed, 21 Oct 2026 13:15:00 +0000


Sat, 03 Oct 2026 11:15:00 +0000


Tue, 29 Sep 2026 13:15:00 +0000


Fri, 25 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: landlock: Fix use-after-free of the source's parent directory current_check_refer_path() reads old_dentry->d_parent without holding a reference nor a lock on it, and then dereferences it in collect_domain_accesses() and in the audit record. A reference on a child does not pin its parent: __d_move() reassigns dentry->d_parent and drops the reference the child held on its former parent. hook_path_rename() is not affected because the rename path calls lock_rename() before the hook, so the source cannot be reparented under it. hook_path_link() has no such protection: filename_linkat() holds a reference on the source dentry but neither locks nor references its parent, so a concurrent rename(2) can reparent the source while security_path_link() runs, and the former parent can then be removed and freed while the hook walks it. A process can trigger this after entering a Landlock domain that handles at least one filesystem access right. The process can then race a linkat(2) loop against rename(2) and rmdir(2): BUG: KASAN: slab-use-after-free in collect_domain_accesses+0x278/0x290 Read of size 4 at addr ffff888160bd53f4 by task llrepro2/549 collect_domain_accesses+0x278/0x290 current_check_refer_path+0x952/0x1120 security_path_link+0x1be/0x320 filename_linkat+0x342/0x6d0 __x64_sys_linkat+0xfa/0x150 Freed by task 562: kmem_cache_free+0x139/0x4c0 i_callback+0x4b/0x80 rcu_core+0x7dc/0x10a0 Take a reference on the dentry selected as the source parent, using dget() for the common-mount-root case and dget_parent() otherwise. Release it after the hierarchy walk and synchronous audit logging. [mic: Clarify the caller, reachability, and reference handling]
Title landlock: Fix use-after-free of the source's parent directory
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-10-21T12:53:22.513Z

Reserved: 2026-09-24T16:01:01.157Z

Link: CVE-2026-97594

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:10.653

Modified: 2026-10-21T13:21:14.293

Link: CVE-2026-97594

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97594 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T08:30:05Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference