Cloudanix VulnDB

CVE-2025-22036

None

CVSS

—

EPSS

0.2%

Published

Apr 16, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in how the operating system reads certain USB drives or external disks can let a local attacker damage memory and potentially gain full control of the computer.

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

What it actually does

Use-after-free on a stack-allocated buffer_head in exfat_get_block during bh_read, allowing concurrent put_bh to corrupt stack memory after the original buffer_head goes out of scope.

Why it matters to the business

Systems running affected kernels with exFAT volumes may experience crashes, memory corruption, or local privilege escalation; widespread container tooling deployments increase exposure across many hosts.

How an attack unfolds

An attacker triggers a race during mpage_read_folio where one CPU holds a stack buffer_head while another performs end_buffer_read_sync and later put_bh, causing UAF write into stack variables of a subsequent function and enabling privilege escalation.

How to fix it

Upgrade the Linux kernel to commit 49b0a6ab8e528a0c1c50e37cef9b9c7c121365f2 or later; for Red Hat Enterprise Linux 9.2 systems also update podman packages to 2:4.4.1-21.el9_2 or newer.

How to confirm the fix worked

Verify the running kernel contains commit 49b0a6ab8e528a0c1c50e37cef9b9c7c121365f2; confirm podman packages report version 4.4.1-21.el9_2 or higher; test exFAT read workloads under concurrent I/O.

Typical attack path

  1. Mount an exFAT filesystem and trigger do_mpage_readpage on a folio without pre-existing buffers.
  2. Force concurrent bh_read and buffer completion paths across CPUs.
  3. Reuse the freed stack slot with attacker-controlled data via put_bh.
  4. Execute code or crash the kernel from the corrupted stack frame.

How to detect it

Search kernel logs for oops or stack traces mentioning exfat_get_block, bh_read, put_bh, or buffer_head UAF; inspect crash dumps for corrupted stack frames after exFAT I/O activity.

What your security team should do

  • Apply kernel and podman updates within the next maintenance window.
  • Restrict exFAT mounts to trusted media until patches are deployed.
  • Monitor for kernel oops and stack trace patterns involving exfat_get_block and buffer_head.

The record

In the Linux kernel, the following vulnerability has been resolved: exfat: fix random stack corruption after get_block When get_block is called with a buffer_head allocated on the stack, such as do_mpage_readpage, stack corruption due to buffer_head UAF may occur in the following race condition situation. <CPU 0> <CPU 1> mpage_read_folio <<bh on stack>> do_mpage_readpage exfat_get_block bh_read __bh_read get_bh(bh) submit_bh wait_on_buffer ... end_buffer_read_sync __end_buffer_read_notouch unlock_buffer <<keep going>> ... ... ... ... <<bh is not valid out of mpage_read_folio>> . . another_function <<variable A on stack>> put_bh(bh) atomic_dec(bh->b_count) * stack corruption here * This patch returns -EAGAIN if a folio does not have buffers when bh_read needs to be called. By doing this, the caller can fallback to functions like block_read_full_folio(), create a buffer_head in the folio, and then call get_block again. Let's do not call bh_read() with on-stack buffer_head.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 kernel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug-devel-matched 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-debug-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-devel-matched 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-64k-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-abi-stablelists 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-cross-headers 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-devel-matched 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-debug-uki-virt 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-devel-matched 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-doc 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-headers 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-64k-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug-kvm 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-debug-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-kvm 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-rt-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-tools 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-tools-libs 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-tools-libs-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-uki-virt 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-uki-virt-addons 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump-devel 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump-devel-matched 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump-modules 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump-modules-core 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 kernel-zfcpdump-modules-extra 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 libperf 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 perf 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 python3-perf 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 rtla 0 6.12.0-55.21.1.el10_0
AlmaLinux:10 rv 0 6.12.0-55.21.1.el10_0
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.25-1
Linux Kernel 6.8.0 6.12.23
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.50.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.50.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_11 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.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.50.1.150600.12.22.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.50.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.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.50.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.50.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.37.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.37.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.37.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.50.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.50.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.37.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.50.1.150600.12.22.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.50.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.50.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.37.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.50.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.37.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.50.1

Related vulnerabilities