Cloudanix VulnDB

CVE-2025-22126

None

CVSS

—

EPSS

0.2%

Published

Apr 16, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in handling lists of storage devices during system shutdown or exit can let attackers crash machines or gain extra access.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Use After Free
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free in Linux kernel MD subsystem during list iteration over all_mddevs in md_notify_reboot() and md_exit() due to unsafe list_for_each_entry_safe allowing concurrent deletion and kfree of next mddev entry.

Why it matters to the business

Potential kernel crashes, data corruption or local privilege escalation on affected Linux systems; high ecosystem prevalence with 599 downstream dependents increases exposure across Red Hat Enterprise Linux 8 Python package ecosystem.

How an attack unfolds

Attacker triggers concurrent MD device removal while md_notify_reboot or md_exit iterates the list, racing deletion and free of the next mddev so that continued dereference after mddev_put causes UAF; threat actors have demonstrated similar Linux kernel privilege escalation patterns in related CVEs.

How to fix it

Update to fixed package versions: python-PyMySQL 0:0.10.1-2.module+el8.10.0+20784+edafcd43, python-docs 0:3.6.7-2.module+el8.10.0+20784+edafcd43, python-docutils 0:0.14-12.module+el8.10.0+20784+edafcd43 and equivalent fixed builds for all other listed Python packages on Red Hat Enterprise Linux 8.

How to confirm the fix worked

Verify package versions match the listed fixed releases; confirm kernel MD list iteration logic uses safe reference counting or list_for_each_entry pattern without UAF window.

Typical attack path

  1. Obtain local access on target system
  2. Create or manipulate MD devices to set up list state
  3. Trigger md_notify_reboot or kernel module exit path
  4. Race deletion of next mddev entry to induce UAF dereference
  5. Leverage freed object for memory corruption or escalation

How to detect it

Review kernel logs and audit records for MD device removal events coinciding with reboot or module unload; look for use-after-free warnings or crashes referencing mddev structures.

What your security team should do

  • Prioritize patching all listed Python packages to the exact fixed module versions provided
  • Monitor for kernel updates addressing MD UAF in future releases
  • Restrict local user access on systems using MD devices until remediated

The record

In the Linux kernel, the following vulnerability has been resolved: md: fix mddev uaf while iterating all_mddevs list While iterating all_mddevs list from md_notify_reboot() and md_exit(), list_for_each_entry_safe is used, and this can race with deletint the next mddev, causing UAF: t1: spin_lock //list_for_each_entry_safe(mddev, n, ...) mddev_get(mddev1) // assume mddev2 is the next entry spin_unlock t2: //remove mddev2 ... mddev_free spin_lock list_del spin_unlock kfree(mddev2) mddev_put(mddev1) spin_lock //continue dereference mddev2->all_mddevs The old helper for_each_mddev() actually grab the reference of mddev2 while holding the lock, to prevent from being freed. This problem can be fixed the same way, however, the code will be complex. Hence switch to use list_for_each_entry, in this case mddev_put() can free the mddev1 and it's not safe as well. Refer to md_seq_show(), also factor out a helper mddev_put_locked() to fix this problem.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:9 kernel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug-devel-matched 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-debug-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-devel-matched 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-64k-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-abi-stablelists 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-cross-headers 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-devel-matched 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-debug-uki-virt 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-devel-matched 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-doc 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-headers 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-64k-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug-kvm 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-debug-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-kvm 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-rt-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-tools 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-tools-libs 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-tools-libs-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-uki-virt 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-uki-virt-addons 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump-devel 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump-devel-matched 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump-modules 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump-modules-core 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 kernel-zfcpdump-modules-extra 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 libperf 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 perf 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 python3-perf 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 rtla 0 5.14.0-570.22.1.el9_6
AlmaLinux:9 rv 0 5.14.0-570.22.1.el9_6
Debian:11 linux-6.1 0 6.1.137-1~deb11u1
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.22-1
Linux Kernel 6.0.0 6.1.135
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise High Availability Extension 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_11 0 1-150600.1.3.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_12 0 1-150600.13.3.1
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_1 0 1-150700.15.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.53.1.150600.12.24.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-64kb 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-default-base 0 6.4.0-150700.53.3.1.150700.17.2.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-source 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-zfcpdump 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-docs 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-obs-build 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-source 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-syms 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Legacy 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.40.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.40.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.40.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-source-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-syms-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Workstation Extension 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.39.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.39.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.39.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.40.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.53.1.150600.12.24.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.40.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.40.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.53.1

Related vulnerabilities