🇰🇷 한글 설명
Linux 커널의 wwan_hwsim 모듈에서 wwan_hwsim_dev_new() 함수 실행 시 메모리 누수가 발생하는 문제입니다. 모듈 프로빙 중 device_register()가 실패하면 kobject 참조 카운트가 0이 되지 않아 dev_set_name()으로 할당된 이름 메모리가 해제되지 않습니다. put_device()를 호출하여 kobject_cleanup() 콜백에서 메모리가 해제되도록 수정되었습니다.
💡 쉬운 설명
가상 무선 모뎀 시뮬레이션 기능의 오류 처리 과정에서 사용하던 메모리가 반환되지 않고 남는 문제입니다. 시스템에 직접적인 침입 위험은 낮으나 반복되면 메모리가 점점 줄어들 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wwan_hwsim: fix possible memory leak in wwan_hwsim_dev_new()
Inject fault while probing module, if device_register() fails,
but the refcount of kobject is not decreased to 0, the name
allocated in dev_set_name() is leaked. Fix this by calling
put_device(), so that name can be freed in callback function
kobject_cleanup().
unreferenced object 0xffff88810152ad20 (size 8):
comm "modprobe", pid 252, jiffies 4294849206 (age 22.713s)
hex dump (first 8 bytes):
68 77 73 69 6d 30 00 ff hwsim0..
backtrace:
[<000000009c3504ed>] __kmalloc_node_track_caller+0x44/0x1b0
[<00000000c0228a5e>] kvasprintf+0xb5/0x140
[<00000000cff8c21f>] kvasprintf_const+0x55/0x180
[<0000000055a1e073>] kobject_set_name_vargs+0x56/0x150
[<000000000a80b139>] dev_set_name+0xab/0xe0
📍 영향받는 시스템
wwan_hwsim 모듈이 포함된 Linux 커널 (수정 커밋 이전 버전)
⚔️ 공격 벡터
로컬 사용자가 모듈 로딩 실패 상황을 유발하여 커널 메모리를 누수시키는 방식으로, 주로 서비스 거부(메모리 고갈) 영향에 그칩니다.
🛡️ 대응 방법
배포판 제공 최신 커널 업데이트를 적용하거나 수정 커밋이 포함된 Linux 커널 버전으로 업그레이드합니다.
🔧 검증 코드
출력된 커널 버전이 배포판의 수정된 최신 패키지 버전 이상인지 확인하고, 모듈이 미로드이거나 배포판 업데이트가 적용되었다면 해당 취약점 영향을 받지 않습니다.
uname -r && (lsmod | grep wwan_hwsim || echo 'wwan_hwsim 모듈 미로드') && (modinfo wwan_hwsim 2>/dev/null | grep -E '^(filename|version|vermagic)' || echo 'wwan_hwsim 모듈 정보 없음')