CVE-2025-39721

crypto: qat - flush misc workqueue during device shutdown

MEDIUM
5.5
CVSS Score
Published: September 5, 2025 at 05:21 PM UTC
Updated: October 19, 2026 at 09:10 PM UTC
4 products affected across 2 vendorsLinux KernelSIMATIC S7-1500 CPU 1518-4 Pn /dp MFP FirmwareSiplus S7-1500 CPU 1518-4 Pn /dp MFP Firmware

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: crypto: qat - flush misc workqueue during device shutdown Repeated loading and unloading of a device specific QAT driver, for example qat_4xxx, in a tight loop can lead to a crash due to a use-after-free scenario. This occurs when a power management (PM) interrupt triggers just before the device-specific driver (e.g., qat_4xxx.ko) is unloaded, while the core driver (intel_qat.ko) remains loaded. Since the driver uses a shared workqueue (`qat_misc_wq`) across all devices and owned by intel_qat.ko, a deferred routine from the device-specific driver may still be pending in the queue. If this routine executes after the driver is unloaded, it can dereference freed memory, resulting in a page fault and kernel crash like the following: BUG: unable to handle page fault for address: ffa000002e50a01c #PF: supervisor read access in kernel mode RIP: 0010:pm_bh_handler+0x1d2/0x250 [intel_qat] Call Trace: pm_bh_handler+0x1d2/0x250 [intel_qat] process_one_work+0x171/0x340 worker_thread+0x277/0x3a0 kthread+0xf0/0x120 ret_from_fork+0x2d/0x50 To prevent this, flush the misc workqueue during device shutdown to ensure that all pending work items are completed before the driver is unloaded. Note: This approach may slightly increase shutdown latency if the workqueue contains jobs from other devices, but it ensures correctness and stability.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

All versions5.18 ≤ v < 6.6.1036.13 ≤ v < 6.16.46.7 ≤ v < 6.12.445.18e5745f34113b758b45d134dec04a7df94dc67131
Vendor states this is fixed in 3d4df408ba9bad2b205c7fb8afc1836a6a4ca88a (fixed)
Vendor states this is fixed in 5858448a6c65d8ee3f8600570d3ce19febcb33be (fixed)
Vendor states this is fixed in e59a52e429e13df3feb34f4853a8e36d121ed937 (fixed)
Vendor states this is fixed in fa4c14a82747886d333d8baef0d26da86ba1ccf7 (fixed)
Vendor states this is fixed in fe546f5c50fc474daca6bee72caa7ab68a74c33d (fixed)
Vendor states this is fixed in 5.18 (unaffected)
Vendor states this is fixed in 6.1.162 (unaffected)
Vendor states this is fixed in 6.12.44 (unaffected)
Vendor states this is fixed in 6.16.4 (unaffected)
Vendor states this is fixed in 6.17 (unaffected)
Vendor states this is fixed in 6.6.103 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-416

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card