---
id: CVE-2026-64529
title: 'crypto: qat - remove unused character device and IOCTLs'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  crypto: qat - remove unused character device and IOCTLs

  The QAT driver exposes a character device (qat_adf_ctl) with IOCTLs
  for device configuration, start, stop, stat…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    071590a44cbc38483fceb1ab943363ec26868e1b
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    1de076f43e64bf65fbe7280a269c70e0e60518df
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    a4999664a5ef77bdb0c6e6b935f581ac8ce6b63a
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    6848a6e39cac44fdb7cb88f0f777df62172d1551
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    b1ea97076bd0a5196290deba172034e480646727
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    b8ebf008696de1ec08c90d51f94d7e40bd448be1
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    de2cc38489b629927910b1aeff69bba7bd5c6f1b
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    3ae49dd04dbb11fb73f17f58a982dba128abe83a
  - >-
    Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d <
    d237230728c567297f2f98b425d63156ab2ed17f
  - Linux 3.17
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:41:41.952211Z'
published: '2026-07-25'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:42:39.580Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-64529'
references:
  - url: 'https://git.kernel.org/stable/c/071590a44cbc38483fceb1ab943363ec26868e1b'
  - url: 'https://git.kernel.org/stable/c/1de076f43e64bf65fbe7280a269c70e0e60518df'
  - url: 'https://git.kernel.org/stable/c/a4999664a5ef77bdb0c6e6b935f581ac8ce6b63a'
  - url: 'https://git.kernel.org/stable/c/6848a6e39cac44fdb7cb88f0f777df62172d1551'
  - url: 'https://git.kernel.org/stable/c/b1ea97076bd0a5196290deba172034e480646727'
  - url: 'https://git.kernel.org/stable/c/b8ebf008696de1ec08c90d51f94d7e40bd448be1'
  - url: 'https://git.kernel.org/stable/c/de2cc38489b629927910b1aeff69bba7bd5c6f1b'
  - url: 'https://git.kernel.org/stable/c/3ae49dd04dbb11fb73f17f58a982dba128abe83a'
  - url: 'https://git.kernel.org/stable/c/d237230728c567297f2f98b425d63156ab2ed17f'
tags:
  - cve.org
epss: 0.00184
epssPercentile: 0.07407
ingestedAt: '2026-10-16T17:24:46.828Z'
---

## Overview

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

crypto: qat - remove unused character device and IOCTLs

The QAT driver exposes a character device (qat_adf_ctl) with IOCTLs
for device configuration, start, stop, status query and enumeration.
These IOCTLs are not part of any public uAPI header and have no known
in-tree or out-of-tree users. Device lifecycle is already managed via
sysfs.

The ioctl interface also increases the attack surface and is the
subject of a number of bug reports.

Remove the character device, the IOCTL definitions, and the related
data structures (adf_dev_status_info, adf_user_cfg_key_val,
adf_user_cfg_section, adf_user_cfg_ctl_data). Drop the now-unused
adf_cfg_user.h header and strip adf_ctl_drv.c down to the minimal
module_init/module_exit hooks for workqueue, AER, and crypto/compression
algorithm registration.

Clean up leftover dead code that was only reachable from the removed
IOCTL paths: adf_cfg_del_all(), adf_devmgr_verify_id(),
adf_devmgr_get_num_dev(), adf_devmgr_get_dev_by_id(),
adf_get_vf_real_id() and the unused ADF_CFG macros.

Additionally, drop the entry associated to QAT IOCTLs in
ioctl-number.rst.

## Affected

- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < 071590a44cbc38483fceb1ab943363ec26868e1b`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < 1de076f43e64bf65fbe7280a269c70e0e60518df`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < a4999664a5ef77bdb0c6e6b935f581ac8ce6b63a`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < 6848a6e39cac44fdb7cb88f0f777df62172d1551`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < b1ea97076bd0a5196290deba172034e480646727`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < b8ebf008696de1ec08c90d51f94d7e40bd448be1`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < de2cc38489b629927910b1aeff69bba7bd5c6f1b`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < 3ae49dd04dbb11fb73f17f58a982dba128abe83a`
- `Linux >= d8cba25d2c68992a6e7c1d329b690a9ebe01167d < d237230728c567297f2f98b425d63156ab2ed17f`
- `Linux 3.17`

## Remediation

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