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

selinux: recheck intermediate backing files on mprotect()

mprotect() can be used to bypass the SELinux checks that mmap() performs
against the intermediate layers of a stacked filesystem.

mmap() checks every backing layer as the request descends through the
stack. mprotect() only has the lowest backing file in vma->vm_file, so it
rechecks the top-level user and the lowest mounter, but skips the mounters
of every layer in between. With two nested overlayfs mounts and a policy
denying mounter_t -> middle_file_t:file { execute }, a direct
mmap(PROT_EXEC) is denied:

avc: denied { execute } for pid=71 comm="nested_exec"
path="/payload" dev="overlay" ino=9
scontext=user_u:base_r:mounter_t
tcontext=user_u:object_r:middle_file_t tclass=file permissive=0

while mmap(PROT_NONE) followed by mprotect(PROT_EXEC) succeeds.

Preserve each intermediate path, mounter SID and file-description SID in
the backing-file security blob, copying the saved entries when another
backing layer is opened. Allocate the array only for nested backing files,
and release it and the path references in the backing_file_free hook.

During mprotect(), recheck fd { use } and the requested inode permissions
for every saved mounter, and include the intermediate layers in the execmod
checks. Policy for nested stacking may then need to grant intermediate
mounters what a direct mmap() already requires, and execmod on intermediate
labels for binaries using text relocations.

Tested on arm64 QEMU with a small BusyBox initramfs and a purpose-built
SELinux policy, on a mainline tree containing
commit f2381b546e7e ("fs: fix user path of nested backing files").

[PM: subject tweak]
Published: 2026-10-06
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege escalation via SELinux enforcement bypass
Action: Immediate Patch
AI Analysis

Impact

A flaw in the Linux kernel’s handling of mprotect() allows a user to bypass the SELinux checks that normally occur during mmap() when files are layered through nested overlay filesystems. The kernel only verifies the top and bottom layers during protection changes, skipping the intermediate mounters, which lets an attacker execute code that would otherwise be denied by policy. The result is unauthorized execution of user‑supplied code, effectively granting elevated privileges on the affected system.

Affected Systems

This issue impacts any Linux kernel running nested overlayfs, regardless of vendor or distribution, that has not yet incorporated commit f2381b546e7e and the subsequent fix. All configurations that use multiple overlay mounts on the same file path are potentially vulnerable.

Risk and Exploitability

The EPSS score is under 1% and the vulnerability is not listed in CISA’s KEV catalog, indicating a low probability of exploitation. However, the CVSS score of 7.0 indicates a high severity that could lead to privilege escalation if SELinux enforcement fails. The attack vector is local; a user or process can map a file through nested overlays and then change its protection to executable to bypass policy. Administrators should consider the vulnerability a serious local escalation risk even though actual exploitation remains unlikely.

Generated by OpenCVE AI on October 9, 2026 at 15:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes commit f2381b546e7e and subsequent security patches addressing mprotect recheck issues.
  • Modify SELinux policies to grant execute or execmod permissions to intermediate mounter contexts, or enable execmod checks on those labels for programs using text relocations.
  • As a temporary measure, avoid calling mprotect(PROT_EXEC) on files stored in nested overlayfs mounts until the kernel and policy have been updated.

Generated by OpenCVE AI on October 9, 2026 at 15:36 UTC.

Tracking

Sign in to view the affected projects.

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

Fri, 09 Oct 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-285
CWE-862

Fri, 09 Oct 2026 12:15:00 +0000

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

None

cvssV3_1

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

threat_severity

Moderate


Wed, 07 Oct 2026 05:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-285
CWE-862

Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: selinux: recheck intermediate backing files on mprotect() mprotect() can be used to bypass the SELinux checks that mmap() performs against the intermediate layers of a stacked filesystem. mmap() checks every backing layer as the request descends through the stack. mprotect() only has the lowest backing file in vma->vm_file, so it rechecks the top-level user and the lowest mounter, but skips the mounters of every layer in between. With two nested overlayfs mounts and a policy denying mounter_t -> middle_file_t:file { execute }, a direct mmap(PROT_EXEC) is denied: avc: denied { execute } for pid=71 comm="nested_exec" path="/payload" dev="overlay" ino=9 scontext=user_u:base_r:mounter_t tcontext=user_u:object_r:middle_file_t tclass=file permissive=0 while mmap(PROT_NONE) followed by mprotect(PROT_EXEC) succeeds. Preserve each intermediate path, mounter SID and file-description SID in the backing-file security blob, copying the saved entries when another backing layer is opened. Allocate the array only for nested backing files, and release it and the path references in the backing_file_free hook. During mprotect(), recheck fd { use } and the requested inode permissions for every saved mounter, and include the intermediate layers in the execmod checks. Policy for nested stacking may then need to grant intermediate mounters what a direct mmap() already requires, and execmod on intermediate labels for binaries using text relocations. Tested on arm64 QEMU with a small BusyBox initramfs and a purpose-built SELinux policy, on a mainline tree containing commit f2381b546e7e ("fs: fix user path of nested backing files"). [PM: subject tweak]
Title selinux: recheck intermediate backing files on mprotect()
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-19T09:15:45.082Z

Reserved: 2026-09-25T10:25:14.325Z

Link: CVE-2026-98214

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-06T09:18:07.943

Modified: 2026-10-19T10:18:22.117

Link: CVE-2026-98214

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-06T00:00:00Z

Links: CVE-2026-98214 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-09T15:45:07Z

Weaknesses
  • CWE-281

    Improper Preservation of Permissions