Description
In the Linux kernel, the following vulnerability has been resolved: io_uring/fdinfo: fix OOB read in SQE_MIXED wrap check __io_uring_show_fdinfo() iterates over pending SQEs and, for 128-byte SQEs on an IORING_SETUP_SQE_MIXED ring, needs to detect when the second half of the SQE would be past the end of the sq_sqes array. The current check tests (++sq_head & sq_mask) == 0, but sq_head is only incremented when a 128-byte SQE is encountered, not on every iteration. The actual array index is sq_idx = (i + sq_head) & sq_mask, which can be sq_mask (the last slot) while the wrap check passes. Fix by checking sq_idx directly. Keep the sq_head increment so the loop still skips the second half of the 128-byte SQE on the next iteration.
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
1cba30bf9fdd6c982708f3587f609a30c370d889 to < ba21ab247a5be5382da7464b95afbe5f0e9aa503affected1cba30bf9fdd6c982708f3587f609a30c370d889 to < 5170efd9c344c68a8075dcb8ed38d3f8a60e7ed4affected
Linux Linux
Default version status: affected
6.19affected0 to < 6.19unaffected6.19.11 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected