🇰🇷 한글 설명
Linux 커널의 brcmsmac 드라이버에서 brcms_free_timer() 함수 호출 시 Use-After-Free(UAF) 취약점이 발생합니다. 타이머를 취소할 때 비동기 방식인 cancel_delayed_work()를 사용하여, 작업 콜백이 실행 중임에도 타이머 구조체가 메모리에서 해제될 수 있는 문제입니다.
💡 쉬운 설명
무선 랜 카드 드라이버에서 작업이 아직 끝나지 않았는데 관련 메모리를 미리 지워버리는 오류가 발견되었습니다. 이로 인해 시스템이 충돌하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: brcmsmac: fix UAF in brcms_free_timer()
brcms_free_timer() calls brcms_del_timer() which uses the non-synchronous
cancel_delayed_work() to cancel the timer's underlying delayed work. If
the work callback (_brcms_timer) is already running, cancel_delayed_work()
returns false without waiting, and brcms_free_timer() proceeds to kfree(t)
while the callback still accesses t through container_of().
Add an explicit cancel_delayed_work_sync() after brcms_del_timer() to
guarantee that any in-flight callback has completed before the timer
structure is freed.
📍 영향받는 시스템
Linux kernel (brcmsmac driver 사용 시스템)
⚔️ 공격 벡터
특정 네트워크 타이머 조건 유도를 통한 메모리 오염 및 권한 상승 시도
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하여 brcms_free_timer() 내에 cancel_delayed_work_sync()를 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.