🇰🇷 한글 설명
리눅스 커널의 memstick 드라이버에서 메모리 누수 취약점이 발견되었습니다. 메모리 스틱 카드를 삽입하고 제거할 때마다 작업 큐(workqueue)가 제대로 해제되지 않아 커널 메모리가 지속적으로 소모됩니다.
💡 쉬운 설명
USB 메모리 카드를 뺐다 꼈다 할 때마다 컴퓨터의 핵심 메모리가 조금씩 낭비되는 문제입니다. 이 현상이 반복되면 결국 시스템 메모리가 부족해져 컴퓨터가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
memstick: ms_block: destroy io_queue workqueue on removal
msb_init_disk() creates the per-card ordered workqueue msb->io_queue with
alloc_ordered_workqueue(). It is torn down with destroy_workqueue() only
on the init error path; msb_remove() never destroys it. msb_stop() merely
flushes the queue, and neither msb_data_clear() nor put_disk() free it. As
a result every card insert/remove cycle leaks the workqueue and its
kworker, exhausting kernel memory over repeated cycles.
Destroy the workqueue in msb_remove() after the disk has been removed and
the queue drained.
📍 영향받는 시스템
Linux kernel (memstick driver 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 메모리 스틱 카드를 반복적으로 삽입 및 제거하여 커널 메모리 고갈 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 msb_remove() 함수 내 작업 큐 해제 로직 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인