Cloudanix VulnDB

CVE-2025-68818

None

CVSS

—

EPSS

0.3%

Published

Jan 13, 2026

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A driver bug in Linux can make servers using certain storage adapters crash when handling disk command cancellations, interrupting services until the system restarts.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The flaw is a NULL pointer dereference in the qla2xxx SCSI driver's __qla2x00_abort_all_cmds path caused by assuming TYPE_SRB without checking sp->cmd_type, allowing an invalid jump for TYPE_TGT_CMD and triggering a kernel oops during abort or ISP error recovery.

Why it matters to the business

Linux systems using QLogic Fibre Channel adapters in target mode may suffer kernel panics and reboots during command abort or error recovery, leading to storage service interruptions and downtime; the bug affects the widely deployed Linux kernel and downstream packages across cloud and enterprise environments.

How an attack unfolds

An attacker or environmental condition triggers SCSI command abort handling in the qla2xxx driver (for example via ISP errors or target-mode operations), entering the flawed lockless completion code that skips the cmd_type check and dereferences a NULL pointer, resulting in a kernel crash.

How to fix it

Upgrade the Linux kernel to a fixed release such as 5.10.248 or apply commit b04b3733fff7e94566386b962e4795550fbdfd3d; for gcp-compute-persistent-disk-csi-driver-fips-1.15 update to version 1.15.4-r14.

How to confirm the fix worked

Confirm the running kernel contains the revert-removal commit or is at least version 5.10.248, then exercise qla2xxx target-mode abort paths under load while monitoring for absence of NULL dereference oops in dmesg.

Typical attack path

  1. Initiate or induce a command abort or ISP error condition on a qla2xxx target-mode device
  2. Invoke __qla2x00_abort_all_cmds without holding the required spinlock
  3. Skip cmd_type validation and jump to an invalid function pointer for TYPE_TGT_CMD
  4. Trigger supervisor page fault and kernel NULL pointer dereference oops
  5. Initiate ISP error recovery and potential system instability or reboot

How to detect it

Search kernel logs and dmesg for qla2xxx abort traces, ISP System Error messages, qla_target system error events, and NULL pointer dereference oops originating from __qla2x00_abort_all_cmds or qla2x00_abort_isp_cleanup.

  • qla2xxx.*ISP System Error
  • __qla2x00_abort_all_cmds.*qla2xxx_scst
  • BUG: kernel NULL pointer dereference.*qla2xxx
  • qla_target.*System error async event
  • qla2x00_abort_isp_cleanup

What your security team should do

  • Apply kernel updates to fixed versions immediately on all systems exposing qla2xxx hardware
  • Test target-mode configurations in a lab environment before production deployment
  • Enable kernel panic logging and monitoring for qla2xxx abort-related oops messages
  • Review EPSS trend and schedule patching within standard change windows given the low but rising exploit probability

The record

In the Linux kernel, the following vulnerability has been resolved: scsi: Revert "scsi: qla2xxx: Perform lockless command completion in abort path" This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9. The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock. But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD: qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success 0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event 0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery - ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G O 6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS: 0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> ? __die+0x4d/0x8b ? page_fault_oops+0x91/0x180 ? trace_buffer_unlock_commit_regs+0x38/0x1a0 ? exc_page_fault+0x391/0x5e0 ? asm_exc_page_fault+0x22/0x30 __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst] qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst] qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst] qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst] qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst] kthread+0xa8/0xd0 </TASK> Then commit 4475afa2646d ("scsi: qla2xxx: Complete command early within lock") added the spinlock back, because not having the lock caused a race and a crash. But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 0 5.10.248
Mageia:9 kernel 0 6.6.120-1.mga9
Mageia:9 kernel-linus 0 6.6.120-1.mga9
Mageia:9 kmod-virtualbox 0 7.1.14-14.mga9
Mageia:9 kmod-xtables-addons 0 3.24-88.mga9
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-azure 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.27.1.160000.2.8
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.27.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.27.1

Related vulnerabilities