CVE-2022-50342 in Linux
Tóm tắt
Bởi VulDB • 19/05/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
floppy: Sửa lỗi rò rỉ bộ nhớ trong do_floppy_init()
Một lỗi rò rỉ bộ nhớ đã được báo cáo khi hàm floppy_alloc_disk() thất bại trong do_floppy_init().
đối tượng không được tham chiếu 0xffff888115ed25a0 (kích thước 8): comm "modprobe", pid 727, jiffies 4295051278 (tuổi 25.529s) dump hex (8 byte đầu tiên): 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
Nếu floppy_alloc_disk() thất bại, các đĩa của ổ đĩa hiện tại sẽ không được đặt, do đó tập hợp thẻ được phân bổ cuối cùng không thể được giải phóng trong đường dẫn xử lý lỗi. Một sơ đồ gọi đơn giản như sau:
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 được phân bổ floppy_alloc_disk() blk_mq_alloc_disk() # lỗi xảy ra, đĩa không được phân bổ
->out_put_disk: for (drive = 0; drive < N_DRIVE; drive++) if (!disks[drive][0]) # đĩa cuối cùng không được đặt và vòng lặp dừng
break; blk_mq_free_tag_set() # tập hợp thẻ được phân bổ cuối cùng bị rò rỉ
Sửa lỗi này bằng cách giải phóng tập hợp thẻ của ổ đĩa hiện tại trước khi nhảy đến đường dẫn xử lý lỗi.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.