CVE-2026-46094: Linux kernel · ext4: fix bounds check in check_xattrs() to prevent out-of-bounds access
Affects Linux kernelSource CVE Database V5
Not known to be exploited · fixed in eceafc31ea7b42c984ece10d79d505c0bb6615d5 : update Linux kernel when convenient.
Data as of 6 Nov 2026, 16:34 UTC
Rated by Threat Radar · No CVSS score from NVD or the CNA
Thin evidence
One scorer or none- CISA SSVC
- Exploitation
- No evidence of active exploitation and no public proof of concept
- Automatable
- Attackers cannot reliably automate steps 1–4 of the kill chain
- Technical impact
- Limited control over the software or limited information exposure
CISA SSVC assessment, 2026-11-06.
- Patch
- Available – fixed in eceafc31ea7b42c984ece10d79d505c0bb6615d5, ab6da97bc310db35d4e4ef5354bc3ff626b0698c, 520986722dbf869c122252123fc161c7302eab7d +2
Exploitation evidence
Disclosed: evidence found.
CVE published 27 May 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 6 Nov 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
Description
In the Linux kernel, the following vulnerability has been resolved: ext4: fix bounds check in check_xattrs() to prevent out-of-bounds access The bounds check for the next xattr entry in check_xattrs() uses (void *)next >= end, which allows next to point within sizeof(u32) bytes of end. On the next loop iteration, IS_LAST_ENTRY() reads 4 bytes via *(__u32 *)(entry), which can overrun the valid xattr region. For example, if next lands at end - 1, the check passes since next < end, but IS_LAST_ENTRY() reads 4 bytes starting at end - 1, accessing 3 bytes beyond the valid region. Fix this by changing the check to (void *)next + sizeof(u32) > end, ensuring there is always enough space for the IS_LAST_ENTRY() read on the subsequent iteration.
References
- git.kernel.org/stable/c/ab6da97bc310db35d4e4ef5354bc3ff626b0698c (opens in a new tab)
- git.kernel.org/stable/c/5a5314d2387633a272a04d1bd8727f99058e4e68 (opens in a new tab)
- git.kernel.org/stable/c/537e065977022aa22f2c2503e8accaf16622e0fd (opens in a new tab)
- git.kernel.org/stable/c/520986722dbf869c122252123fc161c7302eab7d (opens in a new tab)
- git.kernel.org/stable/c/eceafc31ea7b42c984ece10d79d505c0bb6615d5 (opens in a new tab)