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

pds_core: fix use-after-free on workqueue during remove

In pdsc_remove(), the workqueue is destroyed before pdsc_teardown()
is called. This ordering allows two paths to queue work on the
destroyed workqueue:

1. If pdsc_teardown() -> pdsc_devcmd_reset() times out, the error
path in pdsc_devcmd_locked() queues health_work.

2. A NotifyQ event can trigger the ISR and queue work before free_irq()
is called in pdsc_teardown().

Fix by moving destroy_workqueue() after pdsc_teardown() so the
workqueue outlives every queuer; destroy_workqueue() then flushes any
work still pending.

Draining the queued work also requires ordering the teardown so the
resources that work touches are freed last:

- In pdsc_qcq_free(), after freeing the interrupt, cancel_work_sync()
the queue's work and only then clear qcq->intx, so
pdsc_process_adminq()'s read of qcq->intx for interrupt-credit
return cannot race with the clear.

- Free adminqcq before notifyqcq: the shared adminq ISR is released
when adminqcq is freed, and the adminq work accesses notifyqcq, so
both must be stopped before notifyqcq is freed.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The kernel contains a use‑after‑free bug where the workqueue belonging to pds_core is destroyed before pdsc_teardown() finishes. This allows queued work to execute on a freed data structure, giving an attacker the ability to trigger arbitrary code paths or crash the system. The weakness is a classic use‑after‑free race that can compromise confidentiality, integrity, and availability if an attacker can trigger the race conditions described in the description.

Affected Systems

All Linux kernel builds that include the pds_core driver and have not been updated to the commit that fixes the ordering of workqueue destruction and teardown. The affected code resides in the Linux kernel source under pds_core; any custom kernel builds or distributions with older kernel versions are potential targets.

Risk and Exploitability

The CVSS base score is not disclosed, but the underlying use‑after‑free flaw typically receives high severity due to the potential for remote code execution. The EPSS score is not available, and the vulnerability is not listed in CISA KEV, indicating no public exploits are known yet. Inference suggests that a properly privileged user or a malicious network attacker that can trigger the specific timing conditions could exploit the flaw, especially if the system interacts with devices managed by pds_core. The lack of existing exploits does not mitigate the underlying risk; the ordering bug remains a vessel for arbitrary code execution within the kernel space.

Generated by OpenCVE AI on August 10, 2026 at 15:06 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a release that includes the fix for the pds_core workqueue ordering bug
  • If running a custom or older kernel, apply the specific commit that moves destroy_workqueue() after pdsc_teardown() and reorders resource freeing around queued work
  • After updating, perform kernel stability tests that exercise pds_core teardown paths to ensure the race condition has been fully eliminated

Generated by OpenCVE AI on August 10, 2026 at 15:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: pds_core: fix use-after-free on workqueue during remove In pdsc_remove(), the workqueue is destroyed before pdsc_teardown() is called. This ordering allows two paths to queue work on the destroyed workqueue: 1. If pdsc_teardown() -> pdsc_devcmd_reset() times out, the error path in pdsc_devcmd_locked() queues health_work. 2. A NotifyQ event can trigger the ISR and queue work before free_irq() is called in pdsc_teardown(). Fix by moving destroy_workqueue() after pdsc_teardown() so the workqueue outlives every queuer; destroy_workqueue() then flushes any work still pending. Draining the queued work also requires ordering the teardown so the resources that work touches are freed last: - In pdsc_qcq_free(), after freeing the interrupt, cancel_work_sync() the queue's work and only then clear qcq->intx, so pdsc_process_adminq()'s read of qcq->intx for interrupt-credit return cannot race with the clear. - Free adminqcq before notifyqcq: the shared adminq ISR is released when adminqcq is freed, and the adminq work accesses notifyqcq, so both must be stopped before notifyqcq is freed.
Title pds_core: fix use-after-free on workqueue during remove
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-10T12:02:53.197Z

Reserved: 2026-07-30T09:28:09.382Z

Link: CVE-2026-68318

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T15:15:04Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-416

    Use After Free