CVE-2026-99019 in Linux
Sumário
de VulDB • 24/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
scsi: ch: Não manter referências para dispositivos de elemento de transferência de dados
A função `ch_readconfig()` procura o dispositivo scsi (`scsi_device`) de cada elemento de transferência de dados cuja ID SCSI o changer reporta em READ ELEMENT STATUS e armazena-o em `ch->dt[]`. A função `scsi_device_lookup()` obtém uma referência, que nunca é libertada: a função `ch_destroy()` liberta o array com `kfree()`. O array `ch->dt[]` não é lido em mais nenhum local; ele apenas fornece o nome do fornecedor (vendor), modelo e revisão impressos no mesmo loop.
Uma vez tal unidade seja removida, o seu dispositivo scsi (`scsi_device`) nunca pode ser libertado. Ele permanece na lista de dispositivos do host no seu endereço, pelo que um novo dispositivo nesse local é recusado por qualquer coisa que percorra a lista - `target_core_pscsi` reporta "scsi_device_get() failed for H:C:T:L" (falha ao obter scsi_device para H:C:T:L) e o módulo do controlador de baixo nível já não pode ser descarregado. Apenas uma reinicialização recupera esta situação.
Isto manifesta-se com qualquer changer que reporte as IDs das suas unidades; com a biblioteca virtual mhvtl (personalidade IBM 3573-TL), cada criação e remoção de uma biblioteca com quatro unidades deixa quatro referências para trás, contadas pela contagem de uso do módulo em `lsmod`. Com o driver ch não associado, a contagem permanece inalterada; e com este patch aplicado, também permanece inalterada.
Liberte a referência assim que o nome tiver sido impresso e remova o array dt[] agora inútil. Isso remove também o array que era vazado quando `ch_probe()` falhava após `ch_readconfig()`.
O mesmo tipo de fuga foi reportado com um patch RFC em 2022, que não foi integrado.
If you want to get best quality of vulnerability data, you may have to visit VulDB.