Description
In the Linux kernel, the following vulnerability has been resolved: i3c: dw: avoid shift-out-of-bounds when DAA assigns no devices On an empty bus ENTDAA assigns nothing, so cmd->rx_len (the count of addresses left unassigned) equals master->maxdevs. The GENMASK() index master->maxdevs - cmd->rx_len - 1 then becomes -1, which trips up UBSAN. This happens every time on boot on a Gigabyte/AMD server: UBSAN: shift-out-of-bounds in drivers/i3c/master/dw-i3c-master.c:905:12 shift exponent 64 is too large for 64-bit type 'long unsigned int' CPU: 7 UID: 0 PID: 963 Comm: (udev-worker) Not tainted 7.0.11-200.fc44.x86_64 #1 PREEMPT(lazy) Hardware name: Giga Computing E163-Z34-AAH1-000/MZ33-DC1-000, BIOS R32_F45 04/01/2026 Call Trace: <TASK> dump_stack_lvl+0x5d/0x80 ubsan_epilogue+0x5/0x2b __ubsan_handle_shift_out_of_bounds.cold+0xd7/0x1ab dw_i3c_master_daa.cold+0x1b/0x96 [dw_i3c_master] i3c_master_do_daa_ext.part.0+0x3e/0xf0 [i3c] Skip the mask when no new device was assigned.
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
1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 5650b013e6bfc14c8b30be727f4a715b01860a08affected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 63110ccc434e10d9e9d2c7d82ebfa8a6f9cedd94affected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 3a1c35739efb69e8ec2a868113a0471a01bb8f29affected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 111f559e5b6461f5f6977275716e6c5d1eb7ea27affected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 754533e6169d1f10bdef7a6ba9bd7740b524e1d4affected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 9eaac0cb4ca94e2e32c53c156ae5b813ba7ef90caffected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 618dd640ded6b94bbdb79c798a901ec564797033affected1dd728f5d4d4b8b53196c1e0fcf86bbaaee39cef to < 038cf48b3170af26a70bf2dee4f8c3ac910f5176affected
Linux Linux
Default version status: affected
5.0affected0 to < 5.0unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 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/5650b013e6bfc14c8b30be727f4a715b01860a08 ↗
- https://git.kernel.org/stable/c/63110ccc434e10d9e9d2c7d82ebfa8a6f9cedd94 ↗
- https://git.kernel.org/stable/c/3a1c35739efb69e8ec2a868113a0471a01bb8f29 ↗
- https://git.kernel.org/stable/c/111f559e5b6461f5f6977275716e6c5d1eb7ea27 ↗
- https://git.kernel.org/stable/c/754533e6169d1f10bdef7a6ba9bd7740b524e1d4 ↗
- https://git.kernel.org/stable/c/9eaac0cb4ca94e2e32c53c156ae5b813ba7ef90c ↗
- https://git.kernel.org/stable/c/618dd640ded6b94bbdb79c798a901ec564797033 ↗
- https://git.kernel.org/stable/c/038cf48b3170af26a70bf2dee4f8c3ac910f5176 ↗