CVE-2025-21739 in Linuxinformação

Sumário

de VulDB • 02/06/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

scsi: ufs: core: Corrige use-after-free em caminhos de erro de inicialização e remoção

devm_blk_crypto_profile_init() registra um manipulador de limpeza para ser executado quando o dispositivo associado (de plataforma) está sendo liberado. Para UFS, os dados privados de criptografia e os ponteiros são armazenados como parte da estrutura de dados 'struct ufs_hba::crypto_profile' do ufs_hba. Esta estrutura é alocada como parte do ufshcd subjacente e, portanto, da alocação do Scsi_host.

Durante a liberação do driver ou durante o tratamento de erros em ufshcd_pltfrm_init(), esta estrutura é liberada como parte de ufshcd_dealloc_host() antes que o dispositivo (de plataforma) associado à chamada de criptografia acima seja liberado. Uma vez que este dispositivo é liberado, o código de limpeza de criptografia será executado, utilizando o 'struct ufs_hba::crypto_profile' que acabou de ser liberado. Isso causa uma situação de use-after-free:

Rastreamento de chamada: 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

Em outras palavras, o fluxo de código de inicialização é:

probe do dispositivo de plataforma ufshcd_pltfrm_init() ufshcd_alloc_host() scsi_host_alloc() alocação de struct ufs_hba criação de dispositivos scsi-host devm_blk_crypto_profile_init() registro devm do manipulador de limpeza usando dispositivo de plataforma

e durante o tratamento de erros de ufshcd_pltfrm_init() ou durante a remoção do driver:

ufshcd_dealloc_host() scsi_host_put() put_device(scsi-host) liberação de struct ufs_hba put_device(dispositivo de plataforma) manipulador de limpeza de criptografia

Para corrigir este use-after-free, altere ufshcd_alloc_host() para registrar uma ação devres para limpar automaticamente o dispositivo SCSI subjacente na destruição do ufshcd, sem exigir chamadas explícitas para ufshcd_dealloc_host(). Dessa forma:

* o perfil de criptografia e todos os outros recursos de propriedade de ufs_hba são destruídos antes do SCSI (já que foram registrados posteriormente) * um vazamento de memória é corrigido em tc-dwc-g210-pci.c remove() como um efeito colateral * EXPORT_SYMBOL_GPL(ufshcd_dealloc_host) pode ser removido completamente, pois não é mais necessário * nenhum driver futuro usando ufshcd_alloc_host() poderá esquecer de adicionar a limpeza

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsável

Linux

Reservar

29/12/2024

Divulgação

27/02/2025

Moderação

aceite

Entrada

VDB-297665

CPE

pronto

EPSS

0.00211

KEV

não

Atividades

muito baixo

Fontes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!