🇰🇷 한글 설명
Linux 커널의 libertas_tf 드라이버에서 lbtf_free_adapter() 함수 호출 시 타이머가 완전히 종료되기 전에 메모리가 해제되는 Use-After-Free 취약점이 발견되었습니다. 장치 제거 과정에서 타이머 콜백 함수가 실행될 때 이미 해제된 메모리 영역을 참조하여 시스템 불안정이나 오류를 유발할 수 있습니다.
💡 쉬운 설명
와이파이 장치를 제거하는 과정에서 컴퓨터가 메모리를 정리하기 전에 특정 작업이 남아 있어, 이미 사라진 메모리를 다시 건드리려다 발생하는 문제입니다. 이로 인해 시스템이 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: libertas_tf: fix use-after-free in lbtf_free_adapter()
lbtf_free_adapter() calls timer_delete(&priv->command_timer), which does
not wait for a running command_timer_fn() callback. lbtf_free_adapter()
runs on the teardown path right before ieee80211_free_hw() frees priv,
both in lbtf_remove_card() and in the probe error path. command_timer is
armed by mod_timer() in lbtf_cmd() whenever a firmware command is sent.
command_timer_fn() dereferences priv. If a command times out as the
device is removed, command_timer_fn() runs concurrently with teardown and
dereferences priv after it has been freed.
This is the same use-after-free that commit 03cc8f90d053 ("wifi: libertas:
fix use-after-free in lbs_free_adapter()") fixed in the sibling libertas
driver. The libertas_tf variant has the identical pattern and was left
unchanged. Use timer_delete_sync() so any in-flight callback completes
before priv is freed.
📍 영향받는 시스템
Linux kernel (libertas_tf driver 포함 버전)
⚔️ 공격 벡터
로컬 공격자가 장치 제거 또는 드라이버 언로드 과정을 유도하여 메모리 오류를 발생시킬 수 있음
🛡️ 대응 방법
timer_delete() 대신 타이머 종료를 보장하는 timer_delete_sync()를 사용하는 최신 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인