CVE-2025-38255 in Linux
요약
\~에 의해 VulDB • 2026. 05. 09.
리눅스 커널에서 다음 취약점이 해결되었습니다:
lib/group_cpus: group_cpus_evenly()에서 발생하는 NULL 포인터 역참조 수정
configfs를 사용하여 null_blk를 테스트하는 동안 `echo 0 > poll_queues` 명령을 실행하면 다음과 같은 패닉이 발생합니다:
BUG: kernel NULL pointer dereference, address: 0000000000000010 Oops: Oops: 0000 [#1] SMP NOPTI
CPU: 27 UID: 0 PID: 920 Comm: bash Not tainted 6.15.0-02023-gadbdb95c8696-dirty #1238 PREEMPT(undef) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014 RIP: 0010:__bitmap_or+0x48/0x70 Call Trace: <TASK> __group_cpus_evenly+0x822/0x8c0 group_cpus_evenly+0x2d9/0x490 blk_mq_map_queues+0x1e/0x110 null_map_queues+0xc9/0x170 [null_blk]
blk_mq_update_queue_map+0xdb/0x160 blk_mq_update_nr_hw_queues+0x22b/0x560 nullb_update_nr_hw_queues+0x71/0xf0 [null_blk]
nullb_device_poll_queues_store+0xa4/0x130 [null_blk]
configfs_write_iter+0x109/0x1d0 vfs_write+0x26e/0x6f0 ksys_write+0x79/0x180 __x64_sys_write+0x1d/0x30 x64_sys_call+0x45c4/0x45f0 do_syscall_64+0xa5/0x240 entry_SYSCALL_64_after_hwframe+0x76/0x7e
근본 원인은 numgrps가 0으로 설정되고, kcalloc()에서 ZERO_SIZE_PTR가 반환되며, 이후 ZERO_SIZE_PTR가 역참조되기 때문입니다.
group_cpus_evenly()에서 먼저 numgrps를 확인하고, numgrps가 0인 경우 NULL을 직접 반환하여 문제를 해결했습니다.
[[email protected]: 비SMP 버전도 수정함]
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.