CVE-2024-26623

pds_core: Prevent race issues involving the adminq

MEDIUM
4.7
CVSS Score
Published: March 6, 2024 at 06:45 AM UTC
Updated: August 5, 2026 at 12:04 PM UTC
1 product affected across 1 vendorLinux Kernel

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
MEDIUM4.7
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

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.

Affected

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

6.4 ≤ v < 6.6.166.4 ≤ v < 6.7.46.4 ≤ v < 6.86.7 ≤ v < 6.7.41ba61b55b2041a39c54aefb3153c770dd59a0ef6.8 rc16.8 rc2
Vendor states this is fixed in 22cd6046eb2148b18990257505834dd45c672a1b (fixed)
Vendor states this is fixed in 5939feb63ea1f011027576c64b68b681cbad31ca (fixed)
Vendor states this is fixed in 7e82a8745b951b1e794cc780d46f3fbee5e93447 (fixed)
Vendor states this is fixed in 6.4 (unaffected)
Vendor states this is fixed in 6.6.16 (unaffected)
Vendor states this is fixed in 6.7.4 (unaffected)
Vendor states this is fixed in 6.8 (unaffected)

References (3)

Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/22cd6046eb2148b18990257505834dd45c672a1b
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/5939feb63ea1f011027576c64b68b681cbad31ca
Mailing ListPatch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/7e82a8745b951b1e794cc780d46f3fbee5e93447

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

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

Quick Info

StatusMODIFIED
CWE
CWE-476

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