🇰🇷 한글 설명
Linux 커널의 MOST(Mobile Office Services Terminal) 드라이버 내 hdm_disconnect() 함수에서 Use-After-Free 취약점이 발견되었습니다. 장치 해제 과정에서 참조 횟수 관리 오류로 인해 메모리가 이미 해제된 후 다시 접근하거나 중복 해제될 수 있는 문제가 있습니다.
💡 쉬운 설명
컴퓨터가 USB 장치를 연결 해제할 때, 이미 삭제된 메모리 공간을 다시 사용하려고 시도하면서 발생하는 오류입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
most: usb: Fix use-after-free in hdm_disconnect
hdm_disconnect() calls most_deregister_interface(), which eventually
unregisters the MOST interface device with device_unregister(iface->dev).
If that drops the last reference, the device core may call release_mdev()
immediately while hdm_disconnect() is still executing.
The old code also freed several mdev-owned allocations in
hdm_disconnect() and then performed additional put_device() calls.
Depending on refcount order, this could lead to use-after-free or
double-free when release_mdev() ran (or when unregister paths also
performed puts).
Fix by moving the frees of mdev-owned allocations into release_mdev(),
so they happen exactly once when the device is truly released, and by
dropping the extra put_device() calls in hdm_disconnect() that are
redundant after device_unregister() and most_deregister_interface().
This addresses the KASAN slab-use-after-free reported by syzbot in
hdm_disconnect(). See report and stack traces in the bug link below.
📍 영향받는 시스템
Linux Kernel (MOST driver 관련 모듈이 포함된 버전)
⚔️ 공격 벡터
특수하게 조작된 USB MOST 장치를 연결 및 해제하는 과정을 통해 메모리 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인