# CVE-2026-98215: selinux: preserve user SID across nested backing files

> Local attackers can bypass SELinux access controls on nested overlayfs mounts, potentially gaining unauthorized access to protected resources.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 6 Oct 2026
- **Updated:** 19 Oct 2026
- **Also known as:** AZL-106269, BELL-CVE-2026-98215, DEBIAN-CVE-2026-98215, GHSA-4rhv-8vqv-p9w9, UBUNTU-CVE-2026-98215

## What is CVE-2026-98215?

CVE-2026-98215 is a vulnerability in Linux, published on 6 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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

selinux: preserve user SID across nested backing files

SELinux saves the user file SID in a backing-file security blob so it
remains available after mmap() replaces vma->vm_file with a backing file.

For nested backing files (overlayfs over overlayfs, or FUSE passthrough
backed by overlayfs), user_file may itself be a backing file.  Its
fsec->sid is the SID of the mounter that opened it, rather than the user
that opened the top-level file.  mprotect() then checks fd { use } against
the mounter SID.  This can incorrectly deny access without a domain
transition, or check the wrong target SID after one.

Copy the saved user SID when user_file is a backing file.  Keep using the
regular file SID for the first backing layer.

With two nested overlayfs mounts and SELinux enforcing,
mprotect(PROT_READ) returns EACCES with an fd { use } denial against the
mounter SID.  With this change, mprotect() succeeds.

Tested on arm64 QEMU with a small BusyBox initramfs and a purpose-built
SELinux policy.  The original test was also repeated with Fedora Cloud
Base 44 userspace and gave the same result.

## Which versions are affected by CVE-2026-98215?


## How do I fix CVE-2026-98215?

Apply the vendor's patch.

## Is CVE-2026-98215 being exploited?

There is no known exploitation of CVE-2026-98215 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-98215 and fix it if it is affected.

What it is: CVE-2026-98215 is a vulnerability in Linux, published on 6 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-98215 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-98215/ (Markdown: https://insights.sbomify.com/CVE-2026-98215/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-98215
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-98215
- OSV: https://osv.dev/vulnerability/CVE-2026-98215

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-98215/
Summaries are generated and may contain mistakes; the official description above is the record.
