ovl: check access to copy_file_range source with src mounter creds
- 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.6.160, 6.12.114, 6.18.42, 7.1.6
- 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: ovl: check access to copy_file_range source with src mounter creds Commit 5dae222a5ff0c ("vfs: allow copy_file_range to copy across devices") allowed filesystems that implement the copy_file_range() f_op to decide if they want to access cross-sb copy from/to the same fs type. The same commit added checks to verify same sb copy for filesystems that implement ->copy_file_range() and do not support cross-sb copy at the time, namely, to ceph, fuse and nfs. The two remaining fs which implement ->copy_file_range(), cifs and overlayfs started to support cross-sb copy from this time. While overlayfs does support cross-sb copy when the two underlying files are on the same base fs, the copy operation on the two real files from two different overalyfs filesystems is performed with the mounter creds of the destination overlayfs and the read permission access hook for the source file was called with the wrong creds. This could cause either deny of access to copy which would otherwise be allowed (e.g. with splice) or allow read access to file which would otherwise be denied. Fix the latter case by explicitly verifying read access to source file with the source overlayfs mounter creds. The former case remains a quirk of cross-sb overlayfs copy, but userspace could fall back to regular copy so no harm done.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5dae222a5ff0c269730393018a5539cc970a4726 · fixed in 7e13e5b087375f1aee1e930503d20efa7084c0fa; From 5dae222a5ff0c269730393018a5539cc970a4726 · fixed in 46c296aa678828105842eee29a147508d803d926; From 5dae222a5ff0c269730393018a5539cc970a4726 · fixed in 9ec22c8113d8cf72ed7197bb61037dcad09e50d8; From 5dae222a5ff0c269730393018a5539cc970a4726 · fixed in 1f4a107439d2e43db176e34919933e617cb7f2c5; From 5dae222a5ff0c269730393018a5539cc970a4726 · fixed in a1e0eb8f55cfe09bb31a202a388babc411292656
- Linux Linux
5.3
- KernelLinux
From 5.3.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.6