Description
In the Linux kernel, the following vulnerability has been resolved: ocfs2: validate DIO orphan slot during inode read [BUG] A corrupted append-DIO dinode (high byte at offset 0xa1 corrupted from 0 to 1) can carry an i_dio_orphaned_slot outside the mounted filesystem slot range and trigger a use-after-free error: BUG: KASAN: slab-use-after-free in ocfs2_get_system_file_inode+0x780/0x820 fs/ocfs2/sysfile.c:102 Read of size 8 at addr ffff88800b767c00 by task kworker/u8:3/85 Call Trace: ... ocfs2_get_system_file_inode+0x780/0x820 fs/ocfs2/sysfile.c:102 ocfs2_wipe_inode+0x292/0xf70 fs/ocfs2/inode.c:840 ocfs2_delete_inode fs/ocfs2/inode.c:1155 [inline] ocfs2_evict_inode+0x6c9/0x1170 fs/ocfs2/inode.c:1295 evict+0x38e/0x8f0 fs/inode.c:810 iput_final fs/inode.c:1914 [inline] iput fs/inode.c:1966 [inline] iput+0x55b/0x8b0 fs/inode.c:1926 ocfs2_recover_orphans+0x610/0xe40 fs/ocfs2/journal.c:2374 ocfs2_complete_recovery+0x5af/0xd00 fs/ocfs2/journal.c:1373 ... [CAUSE] ocfs2_del_inode_from_orphan() uses i_dio_orphaned_slot to index the slot-local system inode cache. The dinode validator does not check this active slot, so an out-of-range value produces an invalid cache entry pointer that is dereferenced as an inode pointer. [FIX] Reject an active i_dio_orphaned_slot outside the slot range during dinode validation, before DIO orphan recovery can consume it.
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
06ee5c75b57564435933fc0ffa72dc18a2fda0e7 to < b5fcd0aa818e08ede9a1d705ffadb0a19b565ebcaffected06ee5c75b57564435933fc0ffa72dc18a2fda0e7 to < eacdd27ca829747d4372fbae8617151072a4d1e5affected06ee5c75b57564435933fc0ffa72dc18a2fda0e7 to < 8f7a2c5cf23d437acab7f3e739bfcad0f443c554affected06ee5c75b57564435933fc0ffa72dc18a2fda0e7 to < e35fa6eb4d2a39f8049f62361a4b44930882b5f8affected06ee5c75b57564435933fc0ffa72dc18a2fda0e7 to < 418e0ae42fa769d354b15e62c01a00413024755baffected06ee5c75b57564435933fc0ffa72dc18a2fda0e7 to < bb88131c9831075b8dc08cdd375743e5d44c7ca2affected
Linux Linux
Default version status: affected
4.0affected0 to < 4.0unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b5fcd0aa818e08ede9a1d705ffadb0a19b565ebc ↗
- https://git.kernel.org/stable/c/eacdd27ca829747d4372fbae8617151072a4d1e5 ↗
- https://git.kernel.org/stable/c/8f7a2c5cf23d437acab7f3e739bfcad0f443c554 ↗
- https://git.kernel.org/stable/c/e35fa6eb4d2a39f8049f62361a4b44930882b5f8 ↗
- https://git.kernel.org/stable/c/418e0ae42fa769d354b15e62c01a00413024755b ↗
- https://git.kernel.org/stable/c/bb88131c9831075b8dc08cdd375743e5d44c7ca2 ↗