Re: 6.5.5: UBSAN: radeon_atombios.c: index 1 is out of range for type 'UCHAR [1]'
From: Alex Deucher
Date: Tue Apr 09 2024 - 00:23:26 EST
On Mon, Apr 8, 2024 at 9:45 PM Kees Cook <kees@xxxxxxxxxx> wrote:
>
>
>
> On April 8, 2024 5:45:29 PM PDT, Jeff Johnson <quic_jjohnson@xxxxxxxxxxx> wrote:
> >On 10/1/23 17:12, Justin Piszcz wrote:
> >>>> ================================================================================
> >>>> [Sun Oct 1 15:59:04 2023] UBSAN: array-index-out-of-bounds in
> >>>> drivers/gpu/drm/radeon/radeon_atombios.c:2620:43
> >>>> [Sun Oct 1 15:59:04 2023] index 1 is out of range for type 'UCHAR [1]'
> >>>> [Sun Oct 1 15:59:04 2023] CPU: 5 PID: 1 Comm: swapper/0 Tainted: G
> >>>> T 6.5.5 #13 55df8de52754ef95effc50a55e9206abdea304ac
> >>>> [Sun Oct 1 15:59:04 2023] Hardware name: Supermicro X9SRL-F/X9SRL-F,
> >>>> BIOS 3.3 11/13/2018
> >>>> [Sun Oct 1 15:59:04 2023] Call Trace:
> >>>> [Sun Oct 1 15:59:04 2023] <TASK>
> >>>> [Sun Oct 1 15:59:04 2023] dump_stack_lvl+0x36/0x50
> >>>> [Sun Oct 1 15:59:04 2023] __ubsan_handle_out_of_bounds+0xc7/0x110
> >>>> [Sun Oct 1 15:59:04 2023] radeon_atombios_get_power_modes+0x87a/0x8f0
> >>>> [Sun Oct 1 15:59:04 2023] radeon_pm_init+0x13a/0x7e0
> >>>> [Sun Oct 1 15:59:04 2023] evergreen_init+0x13d/0x3d0
> >>>> [Sun Oct 1 15:59:04 2023] radeon_device_init+0x60a/0xbf0
> >>>> [Sun Oct 1 15:59:04 2023] radeon_driver_load_kms+0xb1/0x250
> >>>> [Sun Oct 1 15:59:04 2023] drm_dev_register+0xfc/0x250
> >>>> [Sun Oct 1 15:59:04 2023] radeon_pci_probe+0xd0/0x150
> >>>> [Sun Oct 1 15:59:04 2023] pci_device_probe+0x97/0x130
> >>>> [Sun Oct 1 15:59:04 2023] really_probe+0xbe/0x2f0
> >>>> [Sun Oct 1 15:59:04 2023] ? __pfx___driver_attach+0x10/0x10
> >>>> [Sun Oct 1 15:59:04 2023] __driver_probe_device+0x6e/0x120
> >>>> [Sun Oct 1 15:59:04 2023] driver_probe_device+0x1a/0x90
> >>>> [Sun Oct 1 15:59:04 2023] __driver_attach+0xd4/0x170
> >>>> [Sun Oct 1 15:59:04 2023] bus_for_each_dev+0x87/0xe0
> >>>> [Sun Oct 1 15:59:04 2023] bus_add_driver+0xf3/0x1f0
> >>>> [Sun Oct 1 15:59:04 2023] driver_register+0x58/0x120
> >>>> [Sun Oct 1 15:59:04 2023] ? __pfx_radeon_module_init+0x10/0x10
> >>>> [Sun Oct 1 15:59:04 2023] do_one_initcall+0x93/0x4a0
> >>>> [Sun Oct 1 15:59:04 2023] kernel_init_freeable+0x301/0x580
> >>>> [Sun Oct 1 15:59:04 2023] ? __pfx_kernel_init+0x10/0x10
> >>>> [Sun Oct 1 15:59:04 2023] kernel_init+0x15/0x1b0
> >>>> [Sun Oct 1 15:59:04 2023] ret_from_fork+0x2f/0x50
> >>>> [Sun Oct 1 15:59:04 2023] ? __pfx_kernel_init+0x10/0x10
> >>>> [Sun Oct 1 15:59:04 2023] ret_from_fork_asm+0x1b/0x30
> >>>> [Sun Oct 1 15:59:04 2023] </TASK>
> >>>> [Sun Oct 1 15:59:04 2023]
> >>>> ================================================================================
> >>>> [Sun Oct 1 15:59:04 2023] [drm] radeon: dpm initialized
> >>>> [Sun Oct 1 15:59:04 2023] [drm] GART: num cpu pages 262144, num gpu
> >>>> pages 262144
> >>>> [Sun Oct 1 15:59:04 2023] [drm] enabling PCIE gen 2 link speeds,
> >>>> disable with radeon.pcie_gen2=0
> >>>> [Sun Oct 1 15:59:04 2023] [drm] PCIE GART of 1024M enabled (table at
> >>>> 0x000000000014C000).
> >>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: WB enabled
> >>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: fence driver on ring 0
> >>>> use gpu addr 0x0000000040000c00
> >>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: fence driver on ring 3
> >>>> use gpu addr 0x0000000040000c0c
> >>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: fence driver on ring 5
> >>>> use gpu addr 0x000000000005c418
> >>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: radeon: MSI limited to 32-bit
> >>>> [Sun Oct 1 15:59:04 2023] radeon 0000:03:00.0: radeon: using MSI.
> >>>> [Sun Oct 1 15:59:04 2023] [drm] radeon: irq initialized.
> >>>>
> >>>
> >>> Please also open an issue on freedesktop tracker [1].
> >>>
> >>> Thanks.
> >>>
> >>> [1]: https://gitlab.freedesktop.org/drm/amd/-/issues
> >>
> >> Issue opened: https://gitlab.freedesktop.org/drm/amd/-/issues/2894
> >>
> >> Regards,
> >> Justin
> >
> >+Kees since I've worked with him on several of these flexible array issues.
> >
> >I just happened to look at kernel logs today for my ath1*k driver maintenance and see the subject issue is present on my device, running 6.9.0-rc1. The freedesktop issue tracker says the issue is closed, but any fix has not landed in the upstream kernel. Is there a -next patch somewhere?
> >
> >[ 12.105270] UBSAN: array-index-out-of-bounds in drivers/gpu/drm/radeon/radeon_atombios.c:2718:34
> >[ 12.105272] index 48 is out of range for type 'UCHAR [1]'
> >[
> >
> >If there isn't really an upstream fix, I can probably supply one.
>
> I would expect this to have fixed it:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/gpu/drm/radeon/pptable.h?id=c63079c61177ba1b17fa05c6875699a36924fe39
>
> If not, there must be something else happening?
This patch should silence it I think:
https://patchwork.freedesktop.org/patch/588305/
Alex
>
> -Kees
>
> --
> Kees Cook