CVE-2026-68261
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
10/08/2026
Last modified:
17/08/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
drm/imagination: fix error checking of pvr_vm_context_lookup()<br />
<br />
Since pvr_vm_context_lookup() returns either NULL or a pointer, then stop<br />
using IS_ERR() for checking the return value.<br />
<br />
Using IS_ERR() leads to the kernel oops reported below. It can be<br />
reproduced by passing an invalid VM context handle from userspace to the<br />
DRM_IOCTL_PVR_CREATE_CONTEXT ioctl.<br />
<br />
[ 92.733119] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000148<br />
[ 92.742042] Mem abort info:<br />
[ 92.744890] ESR = 0x0000000096000004<br />
[ 92.748686] EC = 0x25: DABT (current EL), IL = 32 bits<br />
[ 92.754020] SET = 0, FnV = 0<br />
[ 92.757154] EA = 0, S1PTW = 0<br />
[ 92.760337] FSC = 0x04: level 0 translation fault<br />
[ 92.765243] Data abort info:<br />
[ 92.768129] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000<br />
[ 92.773626] CM = 0, WnR = 0, TnD = 0, TagAccess = 0<br />
[ 92.778763] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0<br />
[ 92.784098] user pgtable: 4k pages, 48-bit VAs, pgdp=000000088ed23000<br />
[ 92.790550] [0000000000000148] pgd=0000000000000000, p4d=0000000000000000<br />
[ 92.797381] Internal error: Oops: 0000000096000004 [#1] SMP<br />
[ 92.803027] Modules linked in: powervr<br />
[ 92.852533] CPU: 0 UID: 0 PID: 409 Comm: triangle Not tainted 7.1.0-rc5-g98b46e693b91 #1 PREEMPT<br />
[ 92.861385] Hardware name: Texas Instruments AM68 SK (DT)<br />
[ 92.866766] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)<br />
[ 92.873709] pc : pvr_vm_get_fw_mem_context+0x0/0xc [powervr]<br />
[ 92.879376] lr : pvr_queue_create+0x26c/0x440 [powervr]<br />
[ 92.884595] sp : ffff8000837fbb00<br />
[ 92.887895] x29: ffff8000837fbb60 x28: 0000000000000000 x27: ffff8000837fbce8<br />
[ 92.895015] x26: ffff000807f61a40 x25: ffff000807f61a00 x24: ffff000807f64400<br />
[ 92.902135] x23: ffff00080a5ab000 x22: ffff800079b24730 x21: ffff000807f61800<br />
[ 92.909254] x20: ffff00080999e680 x19: 0000000000000000 x18: 0000000000000000<br />
[ 92.916373] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000001<br />
[ 92.923492] x14: 0000000000000000 x13: 0000000000000002 x12: ffff80008145b298<br />
[ 92.930611] x11: ffff8000844e5000 x10: ffff80008165a130 x9 : 0000000000000100<br />
[ 92.937730] x8 : 0000000000000001 x7 : ffff0008076b27e0 x6 : ffff00080ec43b7c<br />
[ 92.944850] x5 : ffff00080ec43b78 x4 : 0000000000000000 x3 : ffff00080999e680<br />
[ 92.951968] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000<br />
[ 92.959088] Call trace:<br />
[ 92.961521] pvr_vm_get_fw_mem_context+0x0/0xc [powervr] (P)<br />
[ 92.967173] pvr_context_create+0x190/0x410 [powervr]<br />
[ 92.972218] pvr_ioctl_create_context+0x44/0x8c [powervr]<br />
[ 92.977608] drm_ioctl_kernel+0xbc/0x124 [drm]<br />
[ 92.982127] drm_ioctl+0x1f8/0x4dc [drm]<br />
[ 92.986098] __arm64_sys_ioctl+0xac/0x104<br />
[ 92.990102] invoke_syscall+0x54/0x10c<br />
[ 92.993842] el0_svc_common.constprop.0+0x40/0xe0<br />
[ 92.998532] do_el0_svc+0x1c/0x28<br />
[ 93.001835] el0_svc+0x38/0x11c<br />
[ 93.004969] el0t_64_sync_handler+0xa0/0xe4<br />
[ 93.009139] el0t_64_sync+0x198/0x19c<br />
[ 93.012792] Code: aa1703e0 d2800014 95cb0ba4 17ffffe8 (f940a400)<br />
[ 93.018869] ---[ end trace 0000000000000000 ]---



