Cloudanix VulnDB

CVE-2025-21727

High · 7.8

CVSS

7.8

EPSS

0.2%

Published

Feb 27, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in core Linux data handling code could let a local attacker seize control of the machine by racing certain operations.

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

What it actually does

Use-after-free in padata_reorder allows reading from a freed pd structure via padata_find_next after reference count drops during algorithm deletion under RCU-protected paths.

Why it matters to the business

Local attackers can achieve privilege escalation on Linux systems affecting 98 downstream dependents, increasing risk of full system compromise with low but persistent exploit likelihood.

How an attack unfolds

Attacker runs workloads triggering pcrypt_aead_encrypt and padata_do_parallel to increment refcnt, then deletes the algorithm to invoke padata_put_pd and free the pd while padata_reorder's while loop still calls padata_find_next, causing UAF; similar patterns seen in other kernel privilege escalation campaigns.

How to fix it

Add synchronize_rcu() call inside padata_free_shell to wait for in-flight do_serial operations; upgrade affected tensorflow packages to 2.8.4 where kernel components are vendored.

How to confirm the fix worked

Reproduce with LTP pcrypt_aead01 test under KASAN, confirm absence of slab-use-after-free reports in padata_find_next, and verify synchronize_rcu presence in padata_free_shell.

Typical attack path

  1. Trigger parallel crypto operation via padata_do_parallel to hold reference
  2. Initiate algorithm deletion to decrement refcnt to zero
  3. Enter padata_reorder while loop and call padata_find_next on now-freed pd
  4. Read attacker-controlled or kernel memory leading to escalation

How to detect it

Search kernel logs and KASAN reports for padata_find_next, padata_reorder, and slab-use-after-free mentions during pdecrypt_parallel workqueue activity; correlate with algorithm deletion events.

  • BUG: KASAN: slab-use-after-free in padata_find_next+0x29/0x1a0
  • Workqueue: pdecrypt_parallel padata_parallel_worker
  • padata_reorder+0x131/0x220
  • Read of size 4 at addr ffff88bbfe003524

What your security team should do

  • Immediately update Linux kernels and tensorflow 2.8.4 deployments given 98 downstream dependents
  • Enable KASAN or similar memory debugging in test environments to catch UAF patterns
  • Monitor workqueues involving pdecrypt_parallel for anomalous crashes
  • Review RCU-protected paths in any custom padata users

The record

In the Linux kernel, the following vulnerability has been resolved: padata: fix UAF in padata_reorder A bug was found when run ltp test: BUG: KASAN: slab-use-after-free in padata_find_next+0x29/0x1a0 Read of size 4 at addr ffff88bbfe003524 by task kworker/u113:2/3039206 CPU: 0 PID: 3039206 Comm: kworker/u113:2 Kdump: loaded Not tainted 6.6.0+ Workqueue: pdecrypt_parallel padata_parallel_worker Call Trace: <TASK> dump_stack_lvl+0x32/0x50 print_address_description.constprop.0+0x6b/0x3d0 print_report+0xdd/0x2c0 kasan_report+0xa5/0xd0 padata_find_next+0x29/0x1a0 padata_reorder+0x131/0x220 padata_parallel_worker+0x3d/0xc0 process_one_work+0x2ec/0x5a0 If 'mdelay(10)' is added before calling 'padata_find_next' in the 'padata_reorder' function, this issue could be reproduced easily with ltp test (pcrypt_aead01). This can be explained as bellow: pcrypt_aead_encrypt ... padata_do_parallel refcount_inc(&pd->refcnt); // add refcnt ... padata_do_serial padata_reorder // pd while (1) { padata_find_next(pd, true); // using pd queue_work_on ... padata_serial_worker crypto_del_alg padata_put_pd_cnt // sub refcnt padata_free_shell padata_put_pd(ps->pd); // pd is freed // loop again, but pd is freed // call padata_find_next, UAF } In the padata_reorder function, when it loops in 'while', if the alg is deleted, the refcnt may be decreased to 0 before entering 'padata_find_next', which leads to UAF. As mentioned in [1], do_serial is supposed to be called with BHs disabled and always happen under RCU protection, to address this issue, add synchronize_rcu() in 'padata_free_shell' wait for all _do_serial calls to finish. [1] https://lore.kernel.org/all/20221028160401.cccypv4euxikusiq@parnassus.localdomain/ [2] https://lore.kernel.org/linux-kernel/jfjz5d7zwbytztackem7ibzalm5lnxldi2eofeiczqmqs2m7o6@fq426cwnjtkm/

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 kernel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug-devel-matched 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-debug-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-devel-matched 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-64k-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-abi-stablelists 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-cross-headers 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-devel-matched 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-debug-uki-virt 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-devel-matched 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-doc 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-headers 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-debug-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-64k-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug-kvm 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-debug-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-kvm 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-rt-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-tools 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-tools-libs 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-tools-libs-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-uki-virt 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-uki-virt-addons 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump-devel 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump-devel-matched 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump-modules 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump-modules-core 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 kernel-zfcpdump-modules-extra 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 libperf 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 perf 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 python3-perf 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 rtla 0 6.12.0-55.25.1.el10_0
AlmaLinux:10 rv 0 6.12.0-55.25.1.el10_0
AlmaLinux:8 bpftool 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-abi-stablelists 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-core 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-cross-headers 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-debug 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-debug-core 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-debug-devel 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-debug-modules 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-debug-modules-extra 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-devel 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-doc 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-headers 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-modules 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-modules-extra 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-rt 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-core 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-debug 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-debug-core 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-debug-devel 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-debug-modules 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-debug-modules-extra 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-devel 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-modules 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-rt-modules-extra 0 4.18.0-553.69.1.rt7.410.el8_10
AlmaLinux:8 kernel-tools 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-tools-libs 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-tools-libs-devel 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-zfcpdump 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-zfcpdump-core 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-zfcpdump-devel 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-zfcpdump-modules 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 kernel-zfcpdump-modules-extra 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 perf 0 4.18.0-553.69.1.el8_10
AlmaLinux:8 python3-perf 0 4.18.0-553.69.1.el8_10
AlmaLinux:9 kernel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug-devel-matched 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-debug-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-devel-matched 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-64k-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-abi-stablelists 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-cross-headers 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-devel-matched 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-debug-uki-virt 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-devel-matched 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-doc 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-headers 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-debug-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-64k-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug-kvm 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-debug-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-kvm 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-rt-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-tools 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-tools-libs 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-tools-libs-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-uki-virt 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-uki-virt-addons 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump-devel 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump-devel-matched 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump-modules 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump-modules-core 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 kernel-zfcpdump-modules-extra 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 libperf 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 perf 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 python3-perf 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 rtla 0 5.14.0-570.32.1.el9_6
AlmaLinux:9 rv 0 5.14.0-570.32.1.el9_6
Debian:11 linux 0 No fix
Debian:11 linux-6.1 0 6.1.129-1~deb11u1
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.13-1
Linux Kernel 5.4.0 5.10.235
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_10 0 1-150600.1.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_10 0 1-150600.13.5.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.47.2.150600.12.20.2

Related vulnerabilities