Description
In the Linux kernel, the following vulnerability has been resolved: Squashfs: fix uninit-value in squashfs_get_parent Syzkaller reports a "KMSAN: uninit-value in squashfs_get_parent" bug. This is caused by open_by_handle_at() being called with a file handle containing an invalid parent inode number. In particular the inode number is that of a symbolic link, rather than a directory. Squashfs_get_parent() gets called with that symbolic link inode, and accesses the parent member field. unsigned int parent_ino = squashfs_i(inode)->parent; Because non-directory inodes in Squashfs do not have a parent value, this is uninitialised, and this causes an uninitialised value access. The fix is to initialise parent with the invalid inode 0, which will cause an EINVAL error to be returned. Regular inodes used to share the parent field with the block_list_start field. This is removed in this commit to enable the parent field to contain the invalid inode number 0.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
122601408d20c77704268f1dea9f9ce4abf997c2 to < f81a5bc9e924ee1950e0dd82bd10749048390f6eaffected122601408d20c77704268f1dea9f9ce4abf997c2 to < 382a47fae449e554ef1e8c198667fd2f3270b945affected122601408d20c77704268f1dea9f9ce4abf997c2 to < 61d38b5ce2782bff3cacaacbb8164087a73ed1a5affected122601408d20c77704268f1dea9f9ce4abf997c2 to < 81a2bca52d43fc9d9abf07408b91255131c5dc53affected122601408d20c77704268f1dea9f9ce4abf997c2 to < c28b0ca029edf5d0558abcd76cb8c732706cd339affected122601408d20c77704268f1dea9f9ce4abf997c2 to < 1b3ccd0019132880c94bb00ca7088c1749308f82affected122601408d20c77704268f1dea9f9ce4abf997c2 to < 91b99db7a92e57ff48a96a1b10fddfd2547e7f53affected122601408d20c77704268f1dea9f9ce4abf997c2 to < 74058c0a9fc8b2b4d5f4a0ef7ee2cfa66a9e49cfaffected
Linux Linux
Default version status: affected
2.6.29affected0 to < 2.6.29unaffected5.4.301 to ≤ 5.4.*unaffected5.10.246 to ≤ 5.10.*unaffected5.15.195 to ≤ 5.15.*unaffected6.1.156 to ≤ 6.1.*unaffected6.6.112 to ≤ 6.6.*unaffected6.12.53 to ≤ 6.12.*unaffected6.17.3 to ≤ 6.17.*unaffected6.18 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f81a5bc9e924ee1950e0dd82bd10749048390f6e ↗
- https://git.kernel.org/stable/c/382a47fae449e554ef1e8c198667fd2f3270b945 ↗
- https://git.kernel.org/stable/c/61d38b5ce2782bff3cacaacbb8164087a73ed1a5 ↗
- https://git.kernel.org/stable/c/81a2bca52d43fc9d9abf07408b91255131c5dc53 ↗
- https://git.kernel.org/stable/c/c28b0ca029edf5d0558abcd76cb8c732706cd339 ↗
- https://git.kernel.org/stable/c/1b3ccd0019132880c94bb00ca7088c1749308f82 ↗
- https://git.kernel.org/stable/c/91b99db7a92e57ff48a96a1b10fddfd2547e7f53 ↗
- https://git.kernel.org/stable/c/74058c0a9fc8b2b4d5f4a0ef7ee2cfa66a9e49cf ↗