CVE-2025-21739HighMicrosoft CVSS 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Microsoft security update for CVE-2025-21739 — azl3 kernel

Published
June 3, 2026
Last Modified
—

🔗 CVE IDs covered (1)

📋 Microsoft's advisory

EchelonGraph does not copy Microsoft's advisory page: its FAQ and remediation text are not shown here. Read the advisory on https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-21739. This page also shows what EchelonGraph holds for CVE-2025-21739, with the description from its CVE record, which the CVE Numbering Authority that assigned the CVE wrote: for a CVE Microsoft assigned, often in the words of Microsoft's own advisory.

🎯 Affected products11

  • azl3 kernel 6.6.104.2-4 on Azure Linux 3.0
  • azl3 kernel 6.6.112.1-2 on Azure Linux 3.0
  • azl3 kernel 6.6.117.1-1 on Azure Linux 3.0
  • azl3 kernel 6.6.119.3-1 on Azure Linux 3.0
  • azl3 kernel 6.6.119.3-3 on Azure Linux 3.0
  • azl3 kernel 6.6.121.1-1 on Azure Linux 3.0
  • azl3 kernel 6.6.126.1-1 on Azure Linux 3.0
  • azl3 kernel 6.6.130.1-3 on Azure Linux 3.0
  • azl3 kernel 6.6.134.1-2 on Azure Linux 3.0
  • azl3 kernel 6.6.96.2-1 on Azure Linux 3.0
  • azl3 kernel 6.6.96.2-2 on Azure Linux 3.0

✅ Updates Microsoft lists: 1 update

1 row: one per KB article or update, update type and fixed build. Their details are on Microsoft's advisory.

KB articleUpdateFixed build
—Security Update6.6.137.1-2

🧭 EchelonGraph on CVE-2025-21739

EchelonGraph score
7.8 HIGH
CISA KEV
Not listed
Fix status
A fix is available — apply it.

Description from the CVE record (CVE.org), as published by its numbering authority

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

Published by kernel.org, the CVE Numbering Authority that assigned CVE-2025-21739, in its CVE record at CVE.org; reused under the CVE Program's Terms of Use (its licence and MITRE's copyright notice are in our Terms of Service).

🔗 References (2)