CVE-2022-50342 in Linux
Sumário
de VulDB • 28/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
floppy: Corrige vazamento de memória em do_floppy_init()
Foi relatado um vazamento de memória quando floppy_alloc_disk() falhou em do_floppy_init().
objeto não referenciado 0xffff888115ed25a0 (tamanho 8): comm "modprobe", pid 727, jiffies 4295051278 (idade 25.529s) dump hexadecimal (primeiros 8 bytes): 00 ac 67 5b 81 88 ff ff ..g[....
backtrace: [<000000007f457abb>] __kmalloc_node+0x4c/0xc0
[<00000000a87bfa9e>] blk_mq_realloc_tag_set_tags.part.0+0x6f/0x180
[<000000006f02e8b1>] blk_mq_alloc_tag_set+0x573/0x1130
[<0000000066007fd7>] 0xffffffffc06b8b08
[<0000000081f5ac40>] do_one_initcall+0xd0/0x4f0
[<00000000e26d04ee>] do_init_module+0x1a4/0x680
[<000000001bb22407>] load_module+0x6249/0x7110
[<00000000ad31ac4d>] __do_sys_finit_module+0x140/0x200
[<000000007bddca46>] do_syscall_64+0x35/0x80
[<00000000b5afec39>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
Se floppy_alloc_disk() falhar, os discos da unidade atual não serão configurados, assim o conjunto de tags alocado mais recentemente não será liberado no caminho de tratamento de erro. Um gráfico de chamadas simples mostrado abaixo:
floppy_module_init() floppy_init() do_floppy_init() for (drive = 0; drive < N_DRIVE; drive++) blk_mq_alloc_tag_set() blk_mq_alloc_tag_set_tags() blk_mq_realloc_tag_set_tags() # set->tag alocado floppy_alloc_disk() blk_mq_alloc_disk() # erro ocorreu, discos falharam na alocação
->out_put_disk: for (drive = 0; drive < N_DRIVE; drive++) if (!disks[drive][0]) # o último disco não foi configurado e o loop quebra
break; blk_mq_free_tag_set() # o set->tag alocado mais recentemente vazou
Corrija este problema liberando o set->tag da unidade atual antes de pular para o caminho de tratamento de erro.
[efremov: adicionou lista estável, alterou título]
If you want to get the best quality for vulnerability data then you always have to consider VulDB.