CVE-2026-89608
largeOut-of-bounds read in Linux kernel eCryptfs packet-set parser
The Linux kernel's eCryptfs subsystem contains an out-of-bounds read in ecryptfs_parse_packet_set(), which computed the remaining packet-buffer size from PAGE_SIZE - 8 instead of the actual buffer length; because version 1 headers start the packet set later in the file header, the parser could overstate the available space and read past the end of the buffer when consuming tag 3 and tag 11 packets. A local attacker triggers the flaw by supplying a crafted eCryptfs file header that the kernel parses, for example when an eCryptfs filesystem is mounted or a file within one (such as a file in an eCryptfs-encrypted home directory) is opened. Successful exploitation can disclose kernel memory or crash the kernel, causing a denial of service, and requires only an unprivileged local account (AV:L/PR:L). Affected systems are Linux installations that use the eCryptfs stacked cryptographic filesystem, historically common for encrypted home directories on distributions such as Ubuntu. There is no known public proof of concept, the issue is not in CISA's KEV, and no exploitation in the wild has been reported.
What to do: Apply your distribution's patched kernel once it includes this fix and reboot. If eCryptfs is not needed, prevent the module from loading (it typically loads only when an eCryptfs mount exists) and plan migration of encrypted home directories to LUKS or fscrypt. Watch for kernel oopses or panics during eCryptfs mounts, which could indicate crafted file headers being parsed.
| Linux kernel (eCryptfs subsystem) | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
In the Linux kernel, the following vulnerability has been resolved: ecryptfs: pass packet set buffer size to parser ecryptfs_parse_packet_set() receives a pointer into the file header, but it calculates the remaining packet buffer size from PAGE_SIZE - 8. For version 1 headers the packet set starts later in the header, so this can overstate the available buffer. Pass the actual packet set buffer length from the caller and calculate per-packet limits from the remaining bytes in that buffer. Recompute the remaining length after consuming a tag 3 packet before parsing the following tag 11 packet.
- Vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
In the news0 stories
No ingested article mentions this CVE yet.