CVE-2024-44993

drm/v3d: Fix out-of-bounds read in `v3d_csd_job_run()`

published September 4, 2024

CVSS
—
EPSS
0%
Percentile
9.2
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

drm/v3d: Fix out-of-bounds read in `v3d_csd_job_run()`

When enabling UBSAN on Raspberry Pi 5, we get the following warning:

[ 387.894977] UBSAN: array-index-out-of-bounds in drivers/gpu/drm/v3d/v3d_sched.c:320:3

[ 387.903868] index 7 is out of range for type '__u32 [7]'

[ 387.909692] CPU: 0 PID: 1207 Comm: kworker/u16:2 Tainted: G WC 6.10.3-v8-16k-numa #151

[ 387.919166] Hardware name: Raspberry Pi 5 Model B Rev 1.0 (DT)

[ 387.925961] Workqueue: v3d_csd drm_sched_run_job_work [gpu_sched]

[ 387.932525] Call trace:

[ 387.935296] dump_backtrace+0x170/0x1b8

[ 387.939403] show_stack+0x20/0x38

[ 387.942907] dump_stack_lvl+0x90/0xd0

[ 387.946785] dump_stack+0x18/0x28

[ 387.950301] __ubsan_handle_out_of_bounds+0x98/0xd0

[ 387.955383] v3d_csd_job_run+0x3a8/0x438 [v3d]

[ 387.960707] drm_sched_run_job_work+0x520/0x6d0 [gpu_sched]

[ 387.966862] process_one_work+0x62c/0xb48

[ 387.971296] worker_thread+0x468/0x5b0

[ 387.975317] kthread+0x1c4/0x1e0

[ 387.978818] ret_from_fork+0x10/0x20

[ 387.983014] ---[ end trace ]---

This happens because the UAPI provides only seven configuration

registers and we are reading the eighth position of this u32 array.

Therefore, fix the out-of-bounds read in `v3d_csd_job_run()` by

accessing only seven positions on the '__u32 [7]' array. The eighth

register exists indeed on V3D 7.1, but it isn't currently used. That

being so, let's guarantee that it remains unused and add a note that it

could be set in a future patch.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00199 · 9.2th percentile
Published
2024-09-04T19:54Z
EPSS history
Timeline
  • 04 SEP 19:54Z
    drm/v3d: Fix out-of-bounds read in `v3d_csd_job_run()`
    cvelistv5