🇰🇷 한글 설명
Linux 커널의 rtw88 무선 드라이버 중 rtw88_usb 모듈에서 USB 프로브 과정에 할당된 메모리가 해제되지 않아 메모리 누수가 발생합니다. 드라이버를 언로드하면 해제되지 않은 메모리를 가리키는 댕글링 포인터가 남습니다. 할당된 메모리는 rtw_usb_intf_deinit()에서 해제되도록 수정되었습니다.
💡 쉬운 설명
무선 랜 USB 어댑터 드라이버가 사용을 마친 메모리를 제대로 반환하지 않아 시간이 지날수록 시스템 메모리가 조금씩 낭비됩니다. 장기간 사용하는 장비에서는 성능 저하나 불안정의 원인이 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: rtw88: Fix memory leak in rtw88_usb
Kmemleak shows the following leak arising from routine in the usb
probe routine:
unreferenced object 0xffff895cb29bba00 (size 512):
comm "(udev-worker)", pid 534, jiffies 4294903932 (age 102751.088s)
hex dump (first 32 bytes):
77 30 30 30 00 00 00 00 02 2f 2d 2b 30 00 00 00 w000...../-+0...
02 00 2a 28 00 00 00 00 ff 55 ff ff ff 00 00 00 ..*(.....U......
backtrace:
[<ffffffff9265fa36>] kmalloc_trace+0x26/0x90
[<ffffffffc17eec41>] rtw_usb_probe+0x2f1/0x680 [rtw_usb]
[<ffffffffc03e19fd>] usb_probe_interface+0xdd/0x2e0 [usbcore]
[<ffffffff92b4f2fe>] really_probe+0x18e/0x3d0
[<ffffffff92b4f5b8>] __driver_probe_device+0x78/0x160
[<ffffffff92b4f6bf>] driver_probe_device+0x1f/0x90
[<ffffffff92b4f8df>] __driver_attach+0xbf/0x1b0
[<ffffffff92b4d350>] bus_for_each_dev+0x70/0xc0
[<ffffffff92b4e51e>] bus_add_driver+0x10e/0x210
[<ffffffff92b50935>] driver_register+0x55/0xf0
[<ffffffffc03e0708>] usb_register_driver+0x88/0x140 [usbcore]
[<ffffffff92401153>] do_one_initcall+0x43/0x210
[<ffffffff9254f42a>] do_init_module+0x4a/0x200
[<ffffffff92551d1c>] __do_sys_finit_module+0xac/0x120
[<ffffffff92ee6626>] do_syscall_64+0x56/0x80
[<ffffffff9300006a>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
The leak was verified to be real by unloading the driver, which resulted
in a dangling pointer to the allocation.
The allocated memory is freed in rtw_usb_intf_deinit().
📍 영향받는 시스템
rtw88 무선 드라이버(rtw88_usb 모듈)를 사용하는 수정 이전의 Linux 커널 버전
⚔️ 공격 벡터
로컬 사용자가 직접 공격하기는 어렵고, 누수로 인한 메모리 고갈이 서비스 거부 상황을 유발할 가능성이 있는 정도입니다
🛡️ 대응 방법
패치된 Linux 커널로 업데이트하거나 배포판의 최신 커널 패키지를 설치하여 재부팅합니다
🔧 검증 코드
출력된 커널 버전이 수정 커밋이 반영된 버전 이상인지 배포판 보안 공지와 대조하고, rtw_usb 모듈이 로드되지 않았다면 해당 취약점의 영향이 없습니다
uname -r; lsmod | grep rtw_usb 2>/dev/null