Linux: ntfs: take invalidate_lock in ntfs_setattr_size()
What fixes it
- 9cc5761b8f28f9cef72061094eb5e37e2cd44d97LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
ntfs: take invalidate_lock in ntfs_setattr_size()
ntfs_setattr_size() updates i_size and resizes the on-disk attribute without holding mapping->invalidate_lock. Page faults take the lock shared, so a fault racing the resize can resolve a VCN against the transient runlist state of ntfs_non_resident_attr_expand() and fail with a spurious SIGBUS, and can interleave with the size-change epilogue (truncate_pagecache(), i_size_write(), pagecache_isize_extended()).
Take invalidate_lock exclusively around the whole resize after inode_dio_wait(), matching the fallocate path and other filesystems such as xfs, which wraps truncate in its mmaplock (= invalidate_lock).
Text from CVE List
Affected versions 6
- Linuxaffected: 9c87959601e80b39a45250e362e6ddfec17cb0fa before f0b0738ba95731eeafd11352c74f8b48951f67dcCVE List
- Linuxaffected: 9c87959601e80b39a45250e362e6ddfec17cb0fa before 9cc5761b8f28f9cef72061094eb5e37e2cd44d97CVE List
- Linuxaffected: 7.1CVE List
- Linuxunaffected: all versions before 7.1CVE List
- Linuxunaffected: 7.2.13 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List