Cloudanix VulnDB

CVE-2025-68741

None

CVSS

—

EPSS

0.4%

Published

Dec 24, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A Linux kernel storage driver bug can corrupt memory and cause systems to crash or behave unpredictably under certain conditions.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
High
Impact
Other
Component
OS kernel
Class
Memory Corruption
Remediation
Patch
Effort
Low
Patch risk
Low

What it actually does

Memory corruption occurs when kfree() is called on a pre-allocated purex item from a per-adapter pool instead of the proper qla24xx_free_purex_item() in the qla2xxx_process_purls_iocb() error path.

Why it matters to the business

Linux systems with QLogic Fibre Channel adapters risk crashes, instability, or data corruption during storage operations; widespread kernel use and presence in container images amplify operational disruption potential.

How an attack unfolds

An attacker triggers the error handling path in qla2xxx_process_purls_iocb() after a small allocation returns a pooled item via qla24xx_alloc_purex_item(), causing incorrect kfree() and subsequent memory corruption.

How to fix it

Update the Linux kernel to commit 4bccd506a1f1ab01d1f45b2a3effff6bedc73cf9 or later; update affected GitLab Chainguard images to 17.10.0-r2 or newer.

How to confirm the fix worked

Confirm presence of qla24xx_free_purex_item() call in qla2xxx_process_purls_iocb(); verify running kernel contains the fix commit or updated package version.

Typical attack path

  1. Send crafted FC/SCSI traffic to reach qla2xxx_process_purls_iocb()
  2. Force allocation from the pre-allocated purex pool
  3. Induce error condition that executes the buggy kfree path

How to detect it

Inspect kernel logs for oops, warnings, or crashes mentioning qla2xxx and memory free operations around purex item handling.

What your security team should do

  • Apply kernel and image updates to fixed versions immediately
  • Prioritize systems with QLogic adapters in storage fabrics
  • Monitor vendor advisories for backported patches in distributions

The record

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Fix improper freeing of purex item In qla2xxx_process_purls_iocb(), an item is allocated via qla27xx_copy_multiple_pkt(), which internally calls qla24xx_alloc_purex_item(). The qla24xx_alloc_purex_item() function may return a pre-allocated item from a per-adapter pool for small allocations, instead of dynamically allocating memory with kzalloc(). An error handling path in qla2xxx_process_purls_iocb() incorrectly uses kfree() to release the item. If the item was from the pre-allocated pool, calling kfree() on it is a bug that can lead to memory corruption. Fix this by using the correct deallocation function, qla24xx_free_purex_item(), which properly handles both dynamically allocated and pre-allocated items.

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 6.6.0 6.12.63
Linux Kernel 6.6.0 6.6.120
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-azure 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.26.1.160000.2.7
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.26.1
openSUSE:Tumbleweed kernel-source 0 6.18.5-1.1
openSUSE:Tumbleweed kernel-source-longterm 0 6.18.16-1.1

Related vulnerabilities