Linux: btrfs: tree-checker: validate names in ROOT_REF and ROOT_BACKREF
What fixes it
- 1370badf6b823ce3cde39a65f46f9e5dc7b4bf43LinuxCVE List
- 9154542070ca7eadb3c764a882f39a127677854bLinuxCVE List
- 74f577c722c99248d804eca18e7de7c5e47549d7LinuxCVE List
- 0af37c217edf15fa21dac1c40822086df356c6bbLinuxCVE 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:
btrfs: tree-checker: validate names in ROOT_REF and ROOT_BACKREF
ROOT_REF and ROOT_BACKREF items contain a struct btrfs_root_ref followed by the subvolume name. Several readers assume that this layout is already valid and then use the on-disk name length directly. A corrupted item can therefore make those readers address bytes outside the item, and BTRFS_IOC_GET_SUBVOL_INFO can copy too many bytes into its fixed-size UAPI name buffer.
Validate ROOT_REF and ROOT_BACKREF items in tree-checker before any reader uses them. Reject records that do not contain a non-empty name, whose name_len does not exactly describe the remaining item payload, or whose name exceeds BTRFS_NAME_LEN.
For BTRFS_IOC_GET_SUBVOL_INFO, copy only the validated on-disk name_len instead of deriving the copy length from the item size. The ioctl result is zeroed when allocated. That leaves the existing trailing zero byte untouched.
Text from CVE List
Affected versions 12
- Linuxaffected: b64ec075bded2b30bcd90af5aa5256d2237c885d before 1370badf6b823ce3cde39a65f46f9e5dc7b4bf43CVE List
- Linuxaffected: b64ec075bded2b30bcd90af5aa5256d2237c885d before ba6c4fc662853f6662e4db060cf88ee994053e21CVE List
- Linuxaffected: b64ec075bded2b30bcd90af5aa5256d2237c885d before 9154542070ca7eadb3c764a882f39a127677854bCVE List
- Linuxaffected: b64ec075bded2b30bcd90af5aa5256d2237c885d before 74f577c722c99248d804eca18e7de7c5e47549d7CVE List
- Linuxaffected: b64ec075bded2b30bcd90af5aa5256d2237c885d before 0af37c217edf15fa21dac1c40822086df356c6bbCVE List
- Linuxaffected: 4.18CVE List
- Linuxunaffected: all versions before 4.18CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2CVE List
References 5
- git.kernel.org/stable/c/1370badf6b823ce3cde39a65f46f9e5dc7b4bf43Referencevia CVE List
- git.kernel.org/stable/c/ba6c4fc662853f6662e4db060cf88ee994053e21Referencevia CVE List
- git.kernel.org/stable/c/9154542070ca7eadb3c764a882f39a127677854bReferencevia CVE List
- git.kernel.org/stable/c/74f577c722c99248d804eca18e7de7c5e47549d7Referencevia CVE List
- git.kernel.org/stable/c/0af37c217edf15fa21dac1c40822086df356c6bbReferencevia CVE List