CVE-2026-90096
Last modified
CVE-2026-90096 is a vulnerability of currently unknown severity. In the Linux kernel, the following vulnerability has been resolved: fuse: invalidate the correct range after O_APPEND direct write fuse_direct_write_iter() captures pos before generic_write_checks(), which moves ki_pos to EOF for O_APPEND writes: fuse_direct_write_iter() { pos = iocb->ki_pos; /* 0 (user-supplied) */ generic_write_checks(); /* ki_pos -> EOF */ fuse_direct_io(); /* writes at EOF, correct */ invalidate(pos, pos + res); /* [0, res) -- wrong */ } The post-write invalidation targets a stale range instead of the actual written range at EOF. This can cause data inconsistency when the file size is not page-aligned. The tail page straddling EOF has a valid portion before EOF that concurrent readers can fault back in during the DIO write window: Tail page (file size X not page-aligned): page_start X (EOF) page_end |--- valid data ----|-- stale --| CPU0 (O_APPEND DIO writer) CPU1 (buffered reader) -------------------------- ---------------------- invalidate [X, X+len) tail page evicted FUSE_WRITE in flight ... read [page_start, X) tail page re-faulted [X, page_end) = stale FUSE_WRITE completes i_size = X + len invalidate [0, len) <- WRONG tail page still cached read [X, X+len) hits stale tail page returns old data Fix by reading pos back from iocb->ki_pos after generic_write_checks(), as generic_file_direct_write() does. Also fix a typo in the comment ("may have" -> "may have competed")..
Description
In the Linux kernel, the following vulnerability has been resolved: fuse: invalidate the correct range after O_APPEND direct write fuse_direct_write_iter() captures pos before generic_write_checks(), which moves ki_pos to EOF for O_APPEND writes: fuse_direct_write_iter() { pos = iocb->ki_pos; /* 0 (user-supplied) */ generic_write_checks(); /* ki_pos -> EOF */ fuse_direct_io(); /* writes at EOF, correct */ invalidate(pos, pos + res); /* [0, res) -- wrong */ } The post-write invalidation targets a stale range instead of the actual written range at EOF. This can cause data inconsistency when the file size is not page-aligned. The tail page straddling EOF has a valid portion before EOF that concurrent readers can fault back in during the DIO write window: Tail page (file size X not page-aligned): page_start X (EOF) page_end |--- valid data ----|-- stale --| CPU0 (O_APPEND DIO writer) CPU1 (buffered reader) -------------------------- ---------------------- invalidate [X, X+len) tail page evicted FUSE_WRITE in flight ... read [page_start, X) tail page re-faulted [X, page_end) = stale FUSE_WRITE completes i_size = X + len invalidate [0, len) <- WRONG tail page still cached read [X, X+len) hits stale tail page returns old data Fix by reading pos back from iocb->ki_pos after generic_write_checks(), as generic_file_direct_write() does. Also fix a typo in the comment ("may have" -> "may have competed").
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 2b0408d0284f4ff376cf5610fa8c9905e93c2541, < 833963069adf86dcbdffd4e7d7b3171f95070b77; >= 2b0408d0284f4ff376cf5610fa8c9905e93c2541, < 26d7e1f5c407b5859122b5cd47d7ebbf4b4c1cd2 |
| Linux | Linux | 7.2 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-90096?
How severe is CVE-2026-90096?
How do I fix CVE-2026-90096?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-90090In the Linux kernel, the following vulnerability has been re…
- CVE-2026-90091In the Linux kernel, the following vulnerability has been re…8
- CVE-2026-90092In the Linux kernel, the following vulnerability has been re…8
- CVE-2026-90093In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2026-90094In the Linux kernel, the following vulnerability has been re…
- CVE-2026-90095In the Linux kernel, the following vulnerability has been re…
- CVE-2026-90097In the Linux kernel, the following vulnerability has been re…
- CVE-2026-90098In the Linux kernel, the following vulnerability has been re…
- CVE-2026-90099In the Linux kernel, the following vulnerability has been re…
- CVE-2026-9010The Boost plugin for WordPress is vulnerable to time-based S…7.5
- CVE-2026-90100In the Linux kernel, the following vulnerability has been re…
- CVE-2026-90101In the Linux kernel, the following vulnerability has been re…
Are you affected by CVE-2026-90096?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
