CVE-2025-21739 json
scsi: ufs: core: Fix use-after free in init error and remove paths
published 2025-02-27 20 mo ago modified 2026-06-17 4 mo ago also EUVD-2025-5177
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 12%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
scsi: ufs: core: Fix use-after free in init error and remove paths
devm_blk_crypto_profile_init() registers a cleanup handler to run when the associated (platform-) device is being released. For UFS, the crypto private data and pointers are stored as part of the ufs_hba's data structure 'struct ufs_hba::crypto_profile'. This structure is allocated as part of the underlying ufshcd and therefore Scsi_host allocation.
During driver release or during error handling in ufshcd_pltfrm_init(), this structure is released as part of ufshcd_dealloc_host() before the (platform-) device associated with the crypto call above is released. Once this device is released, the crypto cleanup code will run, using the just-released 'struct ufs_hba::crypto_profile'. This causes a use-after-free situation:
Call trace: kfree+0x60/0x2d8 (P) kvfree+0x44/0x60 blk_crypto_profile_destroy_callback+0x28/0x70 devm_action_release+0x1c/0x30 release_nodes+0x6c/0x108 devres_release_all+0x98/0x100 device_unbind_cleanup+0x20/0x70 really_probe+0x218/0x2d0
In other words, the initialisation code flow is:
platform-device probe ufshcd_pltfrm_init() ufshcd_alloc_host() scsi_host_alloc() allocation of struct ufs_hba creation of scsi-host devices devm_blk_crypto_profile_init() devm registration of cleanup handler using platform-device
and during error handling of ufshcd_pltfrm_init() or during driver removal:
ufshcd_dealloc_host() scsi_host_put() put_device(scsi-host) release of struct ufs_hba put_device(platform-device) crypto cleanup handler
To fix this use-after free, change ufshcd_alloc_host() to register a devres action to automatically cleanup the underlying SCSI device on ufshcd destruction, without requiring explicit calls to ufshcd_dealloc_host(). This way:
* the crypto profile and all other ufs_hba-owned resources are destroyed before SCSI (as they've been registered after) * a memleak is plugged in tc-dwc-g210-pci.c remove() as a side-effect * EXPORT_SYMBOL_GPL(ufshcd_dealloc_host) can be removed fully as it's not needed anymore * no future drivers using ufshcd_alloc_host() could ever forget adding the cleanup
Patch / fix
- Linux Linux 5.15.209, 6.1.175, 6.6.135, 6.12.14, 6.13.3, 6.14
- linux Debian 12 6.1.176-1
- linux Debian 14, Debian 13 6.12.15-1
debian advisories DEBIAN-CVE-2025-21739
- linux Ubuntu 22.04 LTS 5.15.0-186.196
- linux Ubuntu 24.04 LTS 6.8.0-64.67
- linux-aws Ubuntu 22.04 LTS 5.15.0-1112.119
- linux-aws Ubuntu 24.04 LTS 6.8.0-1032.34
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1112.122
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1033.35
- linux-gke Ubuntu 22.04 LTS 5.15.0-1108.114
- linux-gke Ubuntu 24.04 LTS 6.8.0-1028.32
ubuntu advisories UBUNTU-CVE-2025-21739
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel RHEL 9 5.14.0-611.5.1.el9_7
- rv RHEL 9 5.14.0-611.5.1.el9_7
- perf RHEL 9 5.14.0-611.5.1.el9_7
- rtla RHEL 9 5.14.0-611.5.1.el9_7
- libperf RHEL 9 5.14.0-611.5.1.el9_7
- kernel-rt RHEL 9 5.14.0-611.5.1.el9_7
- kernel-64k RHEL 9 5.14.0-611.5.1.el9_7
- kernel-core RHEL 9 5.14.0-611.5.1.el9_7
red hat advisories RHSA-2025:20518
- kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.20.3.1
- kernel-syms-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.20.3.1
- kernel-source-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.20.3.1
- kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.3.1
- kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.3.1
- kernel-source SLE Module for Development Tools 15 SP7, SLE Module for Basesystem 15 SP7 6.4.0-150700.53.3.1
- kernel-default SLE Workstation Extension 15 SP7, SLE Module for Legacy 15 SP7, SLE Module for Basesystem 15 SP7 +2 more 6.4.0-150700.53.3.1
- kernel-zfcpdump SLE Module for Basesystem 15 SP7 6.4.0-150700.53.3.1
suse advisories SUSE-SU-2025:01967-1SUSE-SU-2025:01951-1SUSE-SU-2025:01919-1SUSE-SU-2025:20192-1SUSE-SU-2025:20270-1SUSE-SU-2025:20190-1
- kernel AlmaLinux 9 5.14.0-611.5.1.el9_7
- rv AlmaLinux 9 5.14.0-611.5.1.el9_7
- perf AlmaLinux 9 5.14.0-611.5.1.el9_7
- rtla AlmaLinux 9 5.14.0-611.5.1.el9_7
- libperf AlmaLinux 9 5.14.0-611.5.1.el9_7
- kernel-rt AlmaLinux 9 5.14.0-611.5.1.el9_7
- kernel-64k AlmaLinux 9 5.14.0-611.5.1.el9_7
- kernel-core AlmaLinux 9 5.14.0-611.5.1.el9_7
almalinux advisories ALSA-2025:20518
- kernel Rocky Linux 9 5.14.0-611.5.1.el9_7
rocky linux advisories RLSA-2025:20518
- git.kernel.org/stable/c/0a6895c03b1f439236e2d22b1a69ebfc1eb9d5ea commit
- git.kernel.org/stable/c/d06eb2620d3bf16056b8b7ea3744dbb5e30512f4 commit
- git.kernel.org/stable/c/0dc539b888fb5f56b6eeddd95433eab557d4b0c1 commit
- git.kernel.org/stable/c/0c77c0d754fe83cb154715fcfec6c3faef94f207 commit
- git.kernel.org/stable/c/9c185beae09a3eb85f54777edafa227f7e03075d commit
- git.kernel.org/stable/c/f8fb2403ddebb5eea0033d90d9daae4c88749ada commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-21739 updated cvss 7.0
kernel: scsi: ufs: core: Fix use-after free in init error and remove paths
-
Red Hat Enterprise Linux 10 kernelunder investigation
-
Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-611.5.1.el9_7, perf 5.14.0-611.5.1.el9_7, rtla 5.14.0-611.5.1.el9_7, python3-perf 5.14.0-611.5.1.el9_7, kernel-devel-matched 5.14.0-611.5.1.el9_7, kernel-64k-devel-matched 5.14.0-611.5.1.el9_7, +7 more Red Hat Enterprise Linux BaseOS (v. 9) kernel 5.14.0-611.5.1.el9_7, kernel-64k 5.14.0-611.5.1.el9_7, kernel-core 5.14.0-611.5.1.el9_7, kernel-tools 5.14.0-611.5.1.el9_7, kernel-modules 5.14.0-611.5.1.el9_7, kernel-64k-core 5.14.0-611.5.1.el9_7, +27 more Red Hat Enterprise Linux CodeReady Linux Builder (v. 9) libperf 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-s390x 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-x86_64 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-aarch64 5.14.0-611.5.1.el9_7, kernel-debuginfo-common-ppc64le 5.14.0-611.5.1.el9_7 Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-611.5.1.el9_7, kernel-rt-64k 5.14.0-611.5.1.el9_7, kernel-rt-core 5.14.0-611.5.1.el9_7, kernel-rt-modules 5.14.0-611.5.1.el9_7, kernel-rt-64k-core 5.14.0-611.5.1.el9_7, kernel-rt-debug-core 5.14.0-611.5.1.el9_7, +14 more Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-611.5.1.el9_7, kernel-rt-core 5.14.0-611.5.1.el9_7, kernel-rt-modules 5.14.0-611.5.1.el9_7, kernel-rt-debug-core 5.14.0-611.5.1.el9_7, kernel-rt-modules-core 5.14.0-611.5.1.el9_7, kernel-rt-debug-modules 5.14.0-611.5.1.el9_7, +4 morefixed: vendor fix RHSA-2025:20518
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 20 mo ago
Exploit prediction
0.22% chance of exploitation in the next 30 days, higher than 12% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-416 Use After Free
- Technology feeds
References
- git.kernel.org /stable/c/0a6895c03b1f439236e2d22b1a69ebfc1eb9d5ea
- git.kernel.org /stable/c/d06eb2620d3bf16056b8b7ea3744dbb5e30512f4
- git.kernel.org /stable/c/0dc539b888fb5f56b6eeddd95433eab557d4b0c1
-
git.kernel.org
/stable/c/0c77c0d754fe83cb154715fcfec6c3faef94f207
patch
-
git.kernel.org
/stable/c/9c185beae09a3eb85f54777edafa227f7e03075d
patch
-
git.kernel.org
/stable/c/f8fb2403ddebb5eea0033d90d9daae4c88749ada
patch
Sources
- CVE List CVE-2025-21739
- NVD CVE-2025-21739
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.