🔍 CVE-2025-38443

7.8
CVSS Score
HIGH
2025-07-25
2026-11-05 21:18
✅ 완료

🇰🇷 한글 설명

Linux 커널 nbd 드라이버의 nbd_genl_connect() 오류 경로에서 nbd_start_device() 호출 이후 장치를 올바르게 중지하지 않아, 설정(config)이 해제된 뒤에도 recv_work가 이를 사용하는 use-after-free 취약점입니다. 패치는 nbd_start_device()를 백엔드 파일 생성 이후로 옮기는 방식으로 이를 해결합니다.

💡 쉬운 설명

네트워크 블록 장치(NBD) 연결을 설정하다 오류가 나면, 이미 해제된 메모리를 다시 사용하게 되는 결함입니다. 이로 인해 시스템이 불안정해지거나 충돌할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: nbd: fix uaf in nbd_genl_connect() error path There is a use-after-free issue in nbd: block nbd6: Receive control failed (result -104) block nbd6: shutting down sockets ================================================================== BUG: KASAN: slab-use-after-free in recv_work+0x694/0xa80 drivers/block/nbd.c:1022 Write of size 4 at addr ffff8880295de478 by task kworker/u33:0/67 CPU: 2 UID: 0 PID: 67 Comm: kworker/u33:0 Not tainted 6.15.0-rc5-syzkaller-00123-g2c89c1b655c0 #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Workqueue: nbd6-recv recv_work Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:408 [inline] print_report+0xc3/0x670 mm/kasan/report.c:521 kasan_report+0xe0/0x110 mm/kasan/report.c:634 check_region_inline mm/kasan/generic.c:183 [inline] kasan_check_range+0xef/0x1a0 mm/kasan/generic.c:189 instrument_atomic_read_write include/linux/instrumented.h:96 [inline] atomic_dec include/linux/atomic/atomic-instrumented.h:592 [inline] recv_work+0x694/0xa80 drivers/block/nbd.c:1022 process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3238 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:464 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:153 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK> nbd_genl_connect() does not properly stop the device on certain error paths after nbd_start_device() has been called. This causes the error path to put nbd->config while recv_work continue to use the config after putting it, leading to use-after-free in recv_work. This patch moves nbd_start_device() after the backend file creation.

📍 영향받는 시스템

패치 이전의 Linux 커널(nbd 드라이버 포함 빌드) 사용 시스템

⚔️ 공격 벡터

nbd 장치 연결 과정에서 오류를 유발해 해제된 메모리 접근을 일으키는 방식(로컬 권한이 필요한 것으로 추정)

🛡️ 대응 방법

배포판이 제공하는 수정된 Linux 커널 보안 업데이트를 적용하고 재부팅하십시오.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지의 수정 버전(패치 포함 빌드)과 비교하고, 해당 버전보다 낮거나 업데이트가 적용되지 않았다면 취약할 수 있습니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel