CVE-2024-26623: pds_core: Prevent race issues involving the adminq
In the Linux kernel, the following vulnerability has been resolved:
pds_core: Prevent race issues involving the adminq
There are multiple paths that can result in using the pdsc's
adminq.
[1] pdsc_adminq_isr and the resulting work from queue_work(),
i.e. pdsc_work_thread()->pdsc_process_adminq()
[2] pdsc_adminq_post()
When the device goes through reset via PCIe reset and/or
a fw_down/fw_up cycle due to bad PCIe state or bad device
state the adminq is destroyed and recreated.
A NULL pointer dereference can happen if [1] or [2] happens
after the adminq is already destroyed.
In order to fix this, add some further state checks and
implement reference counting for adminq uses. Reference
counting was used because multiple threads can attempt to
access the adminq at the same time via [1] or [2]. Additionally,
multiple clients (i.e. pds-vfio-pci) can be using [2]
at the same time.
The adminq_refcnt is initialized to 1 when the adminq has been
allocated and is ready to use. Users/clients of the adminq
(i.e. [1] and [2]) will increment the refcnt when they are using
the adminq. When the driver goes into a fw_down cycle it will
set the PDSC_S_FW_DEAD bit and then wait for the adminq_refcnt
to hit 1. Setting the PDSC_S_FW_DEAD before waiting will prevent
any further adminq_refcnt increments. Waiting for the
adminq_refcnt to hit 1 allows for any current users of the adminq
to finish before the driver frees the adminq. Once the
adminq_refcnt hits 1 the driver clears the refcnt to signify that
the adminq is deleted and cannot be used. On the fw_up cycle the
driver will once again initialize the adminq_refcnt to 1 allowing
the adminq to be used again.
Security readout for executives and security teams
Plain-English summary
A race condition in the Linux pds_core driver can access its administrative queue after that queue is destroyed during device or firmware resets, causing a NULL pointer dereference. The supplied CVSS score is 7.8. Business risk is concentrated on Linux systems using the relevant PDS hardware and driver, particularly where device instability triggers resets.
Executive priority
Treat as high priority for infrastructure using the affected driver and hardware because reset-related races can disrupt kernel operation and the supplied CVSS rates impact highly. Expedite inventory and patching on virtualization, network, or other availability-sensitive hosts. Systems without applicable PDS devices are unlikely to reach the vulnerable path.
Technical view
Concurrent interrupt, worker, and adminq-post paths could retain access while PCIe reset or firmware down/up handling destroyed and recreated the adminq. The fix adds state checks and reference counting, blocks new users after firmware is marked dead, waits for existing users, and only then deletes the queue. The source directly establishes a NULL pointer dereference; broader impact comes from the supplied CVSS assessment.
Likely exposure
Potential exposure is limited to affected Linux kernels using the pds_core driver with applicable PDS devices. The bundle identifies affected releases including 6.4, 6.6.16, 6.7.4, and 6.8, but its version formatting is incomplete. Confirm distribution-specific package status and whether the driver and hardware are present.
Exploitation context
The CVSS vector describes local access with low privileges, low complexity, and no user interaction. Trigger conditions involve PCIe reset or firmware down/up cycles during bad device or PCIe states. The bundle marks this CVE as absent from KEV and provides no evidence of active exploitation or a public exploit.
Researcher notes
The vulnerable lifetime boundary is between concurrent adminq users and teardown during fw_down or PCIe reset. Review backports for state gating, prevention of new references after PDSC_S_FW_DEAD, draining existing references, and reinitialization during fw_up. The supplied records do not clearly establish exact fixed release boundaries, exploitability beyond the NULL dereference, or active exploitation.
Mitigation direction
Upgrade to a vendor-supported kernel containing the referenced stable fix for CVE-2024-26623.
Check distribution security advisories for the exact corrected package and reboot requirements.
Prioritize hosts where pds_core and applicable PDS hardware are actively used.
Reduce exposure to unstable device states until patching, following hardware and operating-system vendor guidance.
Validation and detection
Inventory kernel versions and identify systems using the pds_core driver and applicable PDS devices.
Verify the installed kernel includes one of the referenced stable commits or its vendor backport.
Review kernel logs for pds_core faults, NULL dereferences, firmware cycles, or PCIe resets.
Safely exercise approved device-reset recovery tests after patching and confirm the driver remains stable.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-26623 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.