cifs: use cifs_invalidate_cache() in cifs_do_truncate() for O_TRUNC
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.18.50, 6.13, 7.2, 7.2.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: cifs: use cifs_invalidate_cache() in cifs_do_truncate() for O_TRUNC cifs_do_truncate() is invoked from cifs_open() without i_rwsem, so it cannot use cifs_resize_file_locked() to perform a proper fscache cookie resize. Instead, add cifs_invalidate_cache() after cifs_setsize(). cifs_invalidate_cache() calls fscache_invalidate(), which works without holding i_rwsem: it unconditionally increments inval_counter and sets FSCACHE_COOKIE_NO_DATA_TO_READ, ensuring that stale cached data is not served once the cookie is later activated by fscache_use_cookie(). Truncation to zero leaves no valid cached data, making invalidation the correct semantic here.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From efbcecdecefc26fa062c0e8210533ccad7d6bd4a · fixed in 8b9b10fe5b8b492b27b9f4546742ea541a650213; From fa724e235cfdb0fb0bb427d0f9dfe864ae27403e · fixed in 81fc3868a7f726980ff845c1d0d271051e5f0f45; From fa724e235cfdb0fb0bb427d0f9dfe864ae27403e · fixed in 364b183230586a62660a7280c1eb20138338eeb5; From 6.18.44 · fixed in 6.18.50; From 6.12.105 · fixed in 6.13; From 7.1.8 · fixed in 7.2
- Linux Linux
7.2
- KernelLinux
fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4