CVE-2024-26785

iommufd: Fix protection fault in iommufd_test_syz_conv_iova

Medium · published April 4, 2024

CVSS v3.1
5.5
EPSS
0%
Percentile
12.5
In the wild
Unconfirmed
What it is

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

iommufd: Fix protection fault in iommufd_test_syz_conv_iova

Syzkaller reported the following bug:

general protection fault, probably for non-canonical address 0xdffffc0000000038: 0000 [#1] SMP KASAN

KASAN: null-ptr-deref in range [0x00000000000001c0-0x00000000000001c7]

Call Trace:

lock_acquire

lock_acquire+0x1ce/0x4f0

down_read+0x93/0x4a0

iommufd_test_syz_conv_iova+0x56/0x1f0

iommufd_test_access_rw.isra.0+0x2ec/0x390

iommufd_test+0x1058/0x1e30

iommufd_fops_ioctl+0x381/0x510

vfs_ioctl

__do_sys_ioctl

__se_sys_ioctl

__x64_sys_ioctl+0x170/0x1e0

do_syscall_x64

do_syscall_64+0x71/0x140

This is because the new iommufd_access_change_ioas() sets access->ioas to

NULL during its process, so the lock might be gone in a concurrent racing

context.

Fix this by doing the same access->ioas sanity as iommufd_access_rw() and

iommufd_access_pin_pages() functions do.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00225 · 12.5th percentile
Published
2024-04-04T08:20Z
EPSS history
Timeline
  • 04 APR 08:20Z
    iommufd: Fix protection fault in iommufd_test_syz_conv_iova
    cvelistv5