---
id: CVE-2026-98508
title: 'drm/virtio: fix NULL pointer dereference on fence allocation failure'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  drm/virtio: fix NULL pointer dereference on fence allocation failure

  virtio_gpu_fence_alloc() can fail due to memory pressure and return NULL,
  but its caller like virt…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde <
    9571ab7493561afb4624d69572a7ebb67d76d10f
  - >-
    Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde <
    a8b83ed4a4b1d04c756f53e375e86d3881f66e72
  - >-
    Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde <
    f2f1683955b95c9b958069da3050f7e8e129ff88
  - >-
    Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde <
    ecced0076b700b5896e52af10d0776be8be36b0d
  - >-
    Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde <
    846b3c64fe3e77d9db20a7e3e62dbbb637c773e1
  - Linux 98d3e7c5f757577394f036e0301db9e570342566
  - Linux 4037dcd70c3335600a2a95ec6229d70859bd37a1
  - Linux >= 6.1.54 < 6.2
  - Linux >= 6.5.4 < 6.6
  - Linux 6.6
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:17:15.082Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98508'
references:
  - url: 'https://git.kernel.org/stable/c/9571ab7493561afb4624d69572a7ebb67d76d10f'
  - url: 'https://git.kernel.org/stable/c/a8b83ed4a4b1d04c756f53e375e86d3881f66e72'
  - url: 'https://git.kernel.org/stable/c/f2f1683955b95c9b958069da3050f7e8e129ff88'
  - url: 'https://git.kernel.org/stable/c/ecced0076b700b5896e52af10d0776be8be36b0d'
  - url: 'https://git.kernel.org/stable/c/846b3c64fe3e77d9db20a7e3e62dbbb637c773e1'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.288Z'
---

## Overview

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

drm/virtio: fix NULL pointer dereference on fence allocation failure

virtio_gpu_fence_alloc() can fail due to memory pressure and return NULL,
but its caller like virtio_gpu_init_submit() never checks it. Later,
virtio_gpu_init_submit() passes the NULL fence to
virtio_gpu_fence_event_create(), which unconditionally dereferences it.

Found when fuzzing the virtio driver with Syzkaller:

	Oops: general protection fault, probably for non-canonical address 0xdffffc0000000012: 0000 [#1] SMP KASAN NOPTI
	KASAN: null-ptr-deref in range [0x0000000000000090-0x0000000000000097]
	CPU: 1 UID: 0 PID: 9991 Comm: syz.0.121 Not tainted 7.2.0 #4 PREEMPT(full)
	Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
	RIP: 0010:virtio_gpu_fence_event_create drivers/gpu/drm/virtio/virtgpu_submit.c:295 [inline]
	RIP: 0010:virtio_gpu_init_submit drivers/gpu/drm/virtio/virtgpu_submit.c:398 [inline]
	RIP: 0010:virtio_gpu_execbuffer_ioctl+0xc78/0x1aa0 drivers/gpu/drm/virtio/virtgpu_submit.c:505
	Code: 85 ed 0f 85 21 09 00 00 e8 05 5a c9 fb 48 8b 44 24 10 48 8d b8 90 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 9a 0d 00 00 48 8b 44 24 10 4c 89 b0 90 00 00 00
	RSP: 0018:ffffc900039dfad0 EFLAGS: 00010216
	RAX: dffffc0000000000 RBX: ffffc900039dfdd8 RCX: ffffffff85f6fd3d
	RDX: 0000000000000012 RSI: ffffffff85f6fd4b RDI: 0000000000000090
	RBP: 0000000000000000 R0virtio_gpu_virgl_process_cmd: ctrl 0x102, error 0x1203
	R10: 0000000000000000 R11: 0000000000000000 R12: ffff8880132c4000
	R13: 0000000000000000 R14: ffff888073b6c700 R15: 000000000000003b
	FS:  00007fab480b96c0(0000) GS:ffff8880eb6e9000(0000) knlGS:0000000000000000
	CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
	CR2: 00007effbf5e55a8 CR3: 0000000048d19000 CR4: 0000000000350ef0
	Call Trace:
	<TASK>
	drm_ioctl_kernel+0x1f4/0x3e0 drivers/gpu/drm/drm_ioctl.c:817
	drm_ioctl+0x5f4/0xc70 drivers/gpu/drm/drm_ioctl.c:914
	vfs_ioctl fs/ioctl.c:51 [inline]
	__do_sys_ioctl fs/ioctl.c:597 [inline]
	__se_sys_ioctl fs/ioctl.c:583 [inline]
	__x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
	do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
	do_syscall_64+0x116/0x800 arch/x86/entry/syscall_64.c:94
	entry_SYSCALL_64_after_hwframe+0x77/0x7f
	RIP: 0033:0x7fab471a82bd
	Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
	RSP: 002b:00007fab480b9018 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
	RAX: ffffffffffffffda RBX: 00007fab47435fa0 RCX: 00007fab471a82bd
	RDX: 00002000000000c0 RSI: 00000000c0406442 RDI: 0000000000000003
	RBP: 00007fab480b9080 R08: 0000000000000000 R09: 0000000000000000
	R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
	R13: 00007fab47436038 R14: 00007fab47435fa0 R15: 00007ffe85ab0740
	</TASK>
	Modules linked in:
	---[ end trace 0000000000000000 ]---
	RIP: 0010:virtio_gpu_fence_event_create drivers/gpu/drm/virtio/virtgpu_submit.c:295 [inline]
	RIP: 0010:virtio_gpu_init_submit drivers/gpu/drm/virtio/virtgpu_submit.c:398 [inline]
	RIP: 0010:virtio_gpu_execbuffer_ioctl+0xc78/0x1aa0 drivers/gpu/drm/virtio/virtgpu_submit.c:505
	Code: 85 ed 0f 85 21 09 00 00 e8 05 5a c9 fb 48 8b 44 24 10 48 8d b8 90 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 9a 0d 00 00 48 8b 44 24 10 4c 89 b0 90 00 00 00
	RSP: 0018:ffffc900039dfad0 EFLAGS: 00010216
	RAX: dffffc0000000000 RBX: ffffc900039dfdd8 RCX: ffffffff85f6fd3d
	RDX: 0000000000000012 RSI: ffffffff85f6fd4b RDI: 0000000000000090
	RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000000
	R10: 0000000000000000 R11: 0000000000000000 R12: ffff8880132c4000
	R13: 0000000000000000 R14: ffff888073b6c700 R15: 000000000000003b
	FS:  00007fab480b96c0(0000) GS:ffff888098ae9000(0000) knlGS:00000000
---truncated---

## Affected

- `Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde < 9571ab7493561afb4624d69572a7ebb67d76d10f`
- `Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde < a8b83ed4a4b1d04c756f53e375e86d3881f66e72`
- `Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde < f2f1683955b95c9b958069da3050f7e8e129ff88`
- `Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde < ecced0076b700b5896e52af10d0776be8be36b0d`
- `Linux >= 70d1ace56db6c79d39dbe9c0d5244452b67e2fde < 846b3c64fe3e77d9db20a7e3e62dbbb637c773e1`
- `Linux 98d3e7c5f757577394f036e0301db9e570342566`
- `Linux 4037dcd70c3335600a2a95ec6229d70859bd37a1`
- `Linux >= 6.1.54 < 6.2`
- `Linux >= 6.5.4 < 6.6`
- `Linux 6.6`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
