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

pds_core: fix cmd_regs access racing BAR unmap on reset

pdsc_reset_prepare() and pdsc_reset_done()'s pdsc_map_bars() error path
clear/iounmap cmd_regs without devcmd_lock, and
pdsc_legacy_firmware_update()'s download loop derefs cmd_regs after
dropping and retaking the lock without re-checking. An FLR concurrent
with a devlink flash can unmap cmd_regs under an in-flight devcmd,
causing a NULL deref or a write to unmapped MMIO.

Take devcmd_lock across the BAR unmap/remap, and re-check cmd_regs in
the download loop. Only the PF maps cmd_regs and runs devcmd, so skip
the unmap on a VF, as pdsc_remove() and pdsc_reset_done() already do.

A reset that completes entirely within the unlocked window is not a
correctness problem for the image: the device clears its update session,
so a resumed download is rejected, and it verifies the staged image
before writing a flash slot, reporting PDS_RC_BAD_FW rather than
activating it.

pdsc_unmap_bars() also clears info_regs, intr_status and intr_ctrl. The
interrupt and start/stop readers of those are quiesced before the unmap
by pdsc_fw_down(), which frees the interrupts and tears down the queues.
The debugfs readers are not, since those files outlive a reset; that is
pre-existing and out of scope here.
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: NULL dereference or write to unmapped memory during kernel reset
Action: Patch Kernel
AI Analysis

Impact

In the Linux kernel’s PDS core, a race condition exists between the reset logic and a concurrent devlink flash operation. During a reset sequence, the driver unmaps the BAR that contains cmd_regs without holding the devcmd_lock. If an FLR (Functional Level Reset) occurs at the same time as a devlink flash, cmd_regs can be unmapped while an in‑flight devcmd still references it. This can lead to a NULL dereference or a write to an unmapped MMIO region, potentially causing a kernel crash or memory corruption. The flaw makes the kernel vulnerable to corruption of the device firmware image during an update cycle, which could compromise the integrity of the system.

Affected Systems

The vulnerability affects the Linux kernel, specifically the pds_core module that manages private device services. Both vendor listings identified as Linux:Linux point to the generic upstream kernel. No specific kernel version range is supplied, so all kernel releases that compile the affected module before the fix are potentially exposed. The list of affected products includes any deployment that uses the current upstream kernel or derivatives that have not yet applied the upstream fix.

Risk and Exploitability

The CVSS score is 5.5, and the EPSS score is < 1%, which limits quantitative risk assessment. Based on the EPSS score and KEV status, it is inferred that the vulnerability is not currently widely exploited. However, the issue is a race condition that requires privileged code paths to trigger and is only exploitable during firmware update or reset operations. The lack of public exploitation and the fact that the problem is limited to internal driver logic suggest a moderate to high risk for environments that regularly perform device firmware updates. The vulnerability is not listed in CISA’s KEV catalog, implying that, as of now, there are no known widespread attacks. Attackers would need to orchestrate a coordinated reset and flash operation, which is unlikely to be initiated by an attacker without root or kernel module access.

Generated by OpenCVE AI on September 30, 2026 at 14:14 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patch for the PDS core BAR unmap race condition, which addresses a null-pointer dereference flaw identified as CWE-476.
  • If an immediate kernel upgrade is not feasible, temporarily disable devlink flash or avoid performing full resets while firmware updates are in progress to eliminate the race window that could trigger the CWE-476 vulnerability.
  • Verify that any custom kernel patches or distro modifications restore proper locking around BAR unmap operations and, if not, apply the upstream kernel's lock logic or revert to a patched version, ensuring that the null-pointer dereference issue (CWE-476) is mitigated.
  • Monitor system logs for kernel panics, null pointer dereferences, or MMIO errors that could indicate a recurrence of the flaw.

Generated by OpenCVE AI on September 30, 2026 at 14:14 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Sat, 03 Oct 2026 11:15:00 +0000


Tue, 29 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 15:30:00 +0000

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

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: pds_core: fix cmd_regs access racing BAR unmap on reset pdsc_reset_prepare() and pdsc_reset_done()'s pdsc_map_bars() error path clear/iounmap cmd_regs without devcmd_lock, and pdsc_legacy_firmware_update()'s download loop derefs cmd_regs after dropping and retaking the lock without re-checking. An FLR concurrent with a devlink flash can unmap cmd_regs under an in-flight devcmd, causing a NULL deref or a write to unmapped MMIO. Take devcmd_lock across the BAR unmap/remap, and re-check cmd_regs in the download loop. Only the PF maps cmd_regs and runs devcmd, so skip the unmap on a VF, as pdsc_remove() and pdsc_reset_done() already do. A reset that completes entirely within the unlocked window is not a correctness problem for the image: the device clears its update session, so a resumed download is rejected, and it verifies the staged image before writing a flash slot, reporting PDS_RC_BAD_FW rather than activating it. pdsc_unmap_bars() also clears info_regs, intr_status and intr_ctrl. The interrupt and start/stop readers of those are quiesced before the unmap by pdsc_fw_down(), which frees the interrupts and tears down the queues. The debugfs readers are not, since those files outlive a reset; that is pre-existing and out of scope here.
Title pds_core: fix cmd_regs access racing BAR unmap on reset
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-10-19T09:12:25.476Z

Reserved: 2026-09-25T10:19:56.069Z

Link: CVE-2026-98020

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:30.480

Modified: 2026-10-19T10:17:55.857

Link: CVE-2026-98020

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-98020 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T14:15:16Z

Weaknesses