{"id":"CVE-2026-64529","state":"PUBLISHED","title":"crypto: qat - remove unused character device and IOCTLs","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qat - remove unused character device and IOCTLs\n\nThe QAT driver exposes a character device (qat_adf_ctl) with IOCTLs\nfor device configuration, start, stop, status query and enumeration.\nThese IOCTLs are not part of any public uAPI header and have no known\nin-tree or out-of-tree users. Device lifecycle is already managed via\nsysfs.\n\nThe ioctl interface also increases the attack surface and is the\nsubject of a number of bug reports.\n\nRemove the character device, the IOCTL definitions, and the related\ndata structures (adf_dev_status_info, adf_user_cfg_key_val,\nadf_user_cfg_section, adf_user_cfg_ctl_data). Drop the now-unused\nadf_cfg_user.h header and strip adf_ctl_drv.c down to the minimal\nmodule_init/module_exit hooks for workqueue, AER, and crypto/compression\nalgorithm registration.\n\nClean up leftover dead code that was only reachable from the removed\nIOCTL paths: adf_cfg_del_all(), adf_devmgr_verify_id(),\nadf_devmgr_get_num_dev(), adf_devmgr_get_dev_by_id(),\nadf_get_vf_real_id() and the unused ADF_CFG macros.\n\nAdditionally, drop the entry associated to QAT IOCTLs in\nioctl-number.rst.","publishedAt":"2026-07-25T09:24:18.750Z","updatedAt":"2026-10-19T20:48:38.158Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"071590a44cbc38483fceb1ab943363ec26868e1b","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"1de076f43e64bf65fbe7280a269c70e0e60518df","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"a4999664a5ef77bdb0c6e6b935f581ac8ce6b63a","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"6848a6e39cac44fdb7cb88f0f777df62172d1551","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"b1ea97076bd0a5196290deba172034e480646727","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"b8ebf008696de1ec08c90d51f94d7e40bd448be1","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"de2cc38489b629927910b1aeff69bba7bd5c6f1b","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"3ae49dd04dbb11fb73f17f58a982dba128abe83a","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"d237230728c567297f2f98b425d63156ab2ed17f","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["Documentation/userspace-api/ioctl/ioctl-number.rst","drivers/crypto/intel/qat/qat_common/adf_cfg.c","drivers/crypto/intel/qat/qat_common/adf_cfg.h","drivers/crypto/intel/qat/qat_common/adf_cfg_common.h","drivers/crypto/intel/qat/qat_common/adf_cfg_user.h","drivers/crypto/intel/qat/qat_common/adf_common_drv.h","drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c","drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.17","versionType":"semver"},{"version":"5.10.260","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.211","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.177","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.144","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.95","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.37","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.14","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1.2","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["Documentation/userspace-api/ioctl/ioctl-number.rst","drivers/crypto/intel/qat/qat_common/adf_cfg.c","drivers/crypto/intel/qat/qat_common/adf_cfg.h","drivers/crypto/intel/qat/qat_common/adf_cfg_common.h","drivers/crypto/intel/qat/qat_common/adf_cfg_user.h","drivers/crypto/intel/qat/qat_common/adf_common_drv.h","drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c","drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c"]}],"references":["https://git.kernel.org/stable/c/071590a44cbc38483fceb1ab943363ec26868e1b","https://git.kernel.org/stable/c/1de076f43e64bf65fbe7280a269c70e0e60518df","https://git.kernel.org/stable/c/a4999664a5ef77bdb0c6e6b935f581ac8ce6b63a","https://git.kernel.org/stable/c/6848a6e39cac44fdb7cb88f0f777df62172d1551","https://git.kernel.org/stable/c/b1ea97076bd0a5196290deba172034e480646727","https://git.kernel.org/stable/c/b8ebf008696de1ec08c90d51f94d7e40bd448be1","https://git.kernel.org/stable/c/de2cc38489b629927910b1aeff69bba7bd5c6f1b","https://git.kernel.org/stable/c/3ae49dd04dbb11fb73f17f58a982dba128abe83a","https://git.kernel.org/stable/c/d237230728c567297f2f98b425d63156ab2ed17f"],"weaknesses":["CWE-489"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64529.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64529","state":"PUBLISHED","datePublished":"2026-07-25T09:24:18.750Z","dateUpdated":"2026-10-19T20:48:38.158Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.794Z"},"containers":{"cna":{"title":"crypto: qat - remove unused character device and IOCTLs","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: qat - remove unused character device and IOCTLs\n\nThe QAT driver exposes a character device (qat_adf_ctl) with IOCTLs\nfor device configuration, start, stop, status query and enumeration.\nThese IOCTLs are not part of any public uAPI header and have no known\nin-tree or out-of-tree users. Device lifecycle is already managed via\nsysfs.\n\nThe ioctl interface also increases the attack surface and is the\nsubject of a number of bug reports.\n\nRemove the character device, the IOCTL definitions, and the related\ndata structures (adf_dev_status_info, adf_user_cfg_key_val,\nadf_user_cfg_section, adf_user_cfg_ctl_data). Drop the now-unused\nadf_cfg_user.h header and strip adf_ctl_drv.c down to the minimal\nmodule_init/module_exit hooks for workqueue, AER, and crypto/compression\nalgorithm registration.\n\nClean up leftover dead code that was only reachable from the removed\nIOCTL paths: adf_cfg_del_all(), adf_devmgr_verify_id(),\nadf_devmgr_get_num_dev(), adf_devmgr_get_dev_by_id(),\nadf_get_vf_real_id() and the unused ADF_CFG macros.\n\nAdditionally, drop the entry associated to QAT IOCTLs in\nioctl-number.rst."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"071590a44cbc38483fceb1ab943363ec26868e1b","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"1de076f43e64bf65fbe7280a269c70e0e60518df","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"a4999664a5ef77bdb0c6e6b935f581ac8ce6b63a","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"6848a6e39cac44fdb7cb88f0f777df62172d1551","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"b1ea97076bd0a5196290deba172034e480646727","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"b8ebf008696de1ec08c90d51f94d7e40bd448be1","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"de2cc38489b629927910b1aeff69bba7bd5c6f1b","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"3ae49dd04dbb11fb73f17f58a982dba128abe83a","versionType":"git"},{"version":"d8cba25d2c68992a6e7c1d329b690a9ebe01167d","status":"affected","lessThan":"d237230728c567297f2f98b425d63156ab2ed17f","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["Documentation/userspace-api/ioctl/ioctl-number.rst","drivers/crypto/intel/qat/qat_common/adf_cfg.c","drivers/crypto/intel/qat/qat_common/adf_cfg.h","drivers/crypto/intel/qat/qat_common/adf_cfg_common.h","drivers/crypto/intel/qat/qat_common/adf_cfg_user.h","drivers/crypto/intel/qat/qat_common/adf_common_drv.h","drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c","drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.17","versionType":"semver"},{"version":"5.10.260","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.211","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.177","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.144","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.95","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.37","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.14","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1.2","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["Documentation/userspace-api/ioctl/ioctl-number.rst","drivers/crypto/intel/qat/qat_common/adf_cfg.c","drivers/crypto/intel/qat/qat_common/adf_cfg.h","drivers/crypto/intel/qat/qat_common/adf_cfg_common.h","drivers/crypto/intel/qat/qat_common/adf_cfg_user.h","drivers/crypto/intel/qat/qat_common/adf_common_drv.h","drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c","drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c"]}],"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"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable interface is reached through local open and ioctl syscalls on /dev/qat_adf_ctl; it has no network or physical entry path.\nAC:L - The attacker can repeatedly invoke the start or status ioctl while coordinating QAT VF teardown in a hot-pluggable deployment, giving effective control over the race. A short ioctl loop has already produced the confirmed [KASAN use-after-free](https://www.spinics.net/lists/kernel/msg6034466.html ).\nPR:L - The driver performs no capability or credential check, so device-file permissions are the only gate. Standard QAT installation grants non-root qat-group members mode-0660 access to qat_adf_ctl according to the [Intel QAT installation guide](https://intel.github.io/quickassist/GSG/2.X/installation.html ).\nUI:N - Exploitation requires only attacker-generated ioctl calls and device-lifecycle operations, with no action by another user.\nS:U - The flaw compromises the same host or guest kernel security authority in which the vulnerable QAT driver executes; ordinary kernel privilege escalation does not change scope.\nC:H - The freed accel_dev can be reclaimed with attacker-influenced heap contents, and the status path follows stale pointers and invokes callbacks, providing a defensible route to arbitrary kernel-memory disclosure.\nI:H - Mutex operations and configuration paths write through the reclaimed object, while forged hw_device callbacks provide a plausible control-flow-hijack and arbitrary-kernel-write primitive.\nA:H - The UAF is confirmed to cause a KASAN kernel failure, and repeated malformed ioctls can independently create a printk storm leading to stalls, watchdog lockups, or panic."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:57:06.789Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.10.260"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.15.211"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.1.177"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.6.144"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.12.95"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.18.37"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"7.0.14"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"7.1.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-64529","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:41:41.952211Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-489","lang":"en","type":"CWE","description":"CWE-489 Active Debug Code"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:48:38.158Z"}}]}}}