CVE-2025-68209
NoneCVSS
—
EPSS
0.2%
Published
Dec 16, 2025
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel driver for certain network cards could make the whole computer crash when the hardware tried to report completed work.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
Default CQ creation in the mlx5 driver assigns an inappropriate completion handler and leaves a valid arm_db value, allowing an EQ interrupt to invoke a user-CQ-only function on a polling-only kernel CQ and trigger a NULL pointer dereference.
Why it matters to the business
Systems using the affected mlx5 driver may experience unexpected kernel crashes during normal operation or under crafted workloads, leading to downtime, service interruption, and the need for urgent patching on thousands of dependent packages across Linux distributions.
How an attack unfolds
An attacker with the ability to influence CQ creation or trigger EQ events (local or via hardware interaction) causes the mlx5 driver to invoke an uninitialized completion function on a kernel CQ, resulting in a NULL pointer dereference crash; the root cause was not fully mitigated by prior one-off fixes.
How to fix it
Upgrade to a fixed kernel containing commit 08469f5393a1a39f26a6e2eb2e8c33187665c1f4 or later; for Chainguard/Wolfi stern packages upgrade to 1.32.0-r1 or newer. Rebuild and reboot systems after applying the update; callers of mlx5_core_create_cq must still initialize their own completion functions and arm the CQ.
How to confirm the fix worked
Verify the running kernel contains commit 08469f5393a1a39f26a6e2eb2e8c33187665c1f4 or equivalent fixed version; inspect mlx5 CQ creation paths to confirm a dummy completion handler and invalid command sequence number are set by default for kernel CQs.
Typical attack path
- Trigger mlx5_core_create_cq for a polling-only kernel CQ without setting a completion function
- Ensure the CQ uses doorbells but is intended for polling only
- Cause an EQ interrupt to fire on the CQ
- mlx5_add_cq_to_tasklet is invoked, dereferencing an invalid pointer and crashing the kernel
How to detect it
Review kernel crash logs for NULL pointer dereferences originating in mlx5 CQ completion paths; search dmesg or syslog for mlx5_add_cq_to_tasklet references on kernel CQs; no widespread in-the-wild exploitation indicators have been published.
What your security team should do
- Prioritize patching all mlx5-based systems to the fixed commit or package version 1.32.0-r1 within the next maintenance window
- Monitor EPSS trend for any future increase and reassess exploit maturity
- Audit custom mlx5 driver consumers to ensure they correctly arm CQs and supply completion handlers
- Test updated kernels in staging environments that exercise mlx5 CQ creation paths before broad deployment
The record
In the Linux kernel, the following vulnerability has been resolved: mlx5: Fix default values in create CQ Currently, CQs without a completion function are assigned the mlx5_add_cq_to_tasklet function by default. This is problematic since only user CQs created through the mlx5_ib driver are intended to use this function. Additionally, all CQs that will use doorbells instead of polling for completions must call mlx5_cq_arm. However, the default CQ creation flow leaves a valid value in the CQ's arm_db field, allowing FW to send interrupts to polling-only CQs in certain corner cases. These two factors would allow a polling-only kernel CQ to be triggered by an EQ interrupt and call a completion function intended only for user CQs, causing a null pointer exception. Some areas in the driver have prevented this issue with one-off fixes but did not address the root cause. This patch fixes the described issue by adding defaults to the create CQ flow. It adds a default dummy completion function to protect against null pointer exceptions, and it sets an invalid command sequence number by default in kernel CQs to prevent the FW from sending an interrupt to the CQ until it is armed. User CQs are responsible for their own initialization values. Callers of mlx5_core_create_cq are responsible for changing the completion function and arming the CQ per their needs.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 6.0.0 | 6.17.9 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.9.1.160000.2.6 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.9.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.9.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel