🇰🇷 한글 설명
Linux 커널의 brcmfmac 드라이버에서 brcmf_cfg80211_detach 함수 호출 시 발생하는 Use-After-Free 취약점입니다. USB 장치를 갑자기 분리할 때 실행 중인 타임아웃 워커가 해제된 메모리 영역에 접근하여 시스템 불안정이나 권한 상승을 유발할 수 있습니다.
💡 쉬운 설명
무선 랜카드를 컴퓨터에서 갑자기 뽑았을 때, 컴퓨터가 이미 삭제한 데이터를 계속 사용하려고 시도하면서 발생하는 오류입니다. 이 과정에서 시스템이 멈추거나 해킹의 통로가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
This is the candidate patch of CVE-2023-47233 :
https://nvd.nist.gov/vuln/detail/CVE-2023-47233
In brcm80211 driver,it starts with the following invoking chain
to start init a timeout worker:
->brcmf_usb_probe
->brcmf_usb_probe_cb
->brcmf_attach
->brcmf_bus_started
->brcmf_cfg80211_attach
->wl_init_priv
->brcmf_init_escan
->INIT_WORK(&cfg->escan_timeout_work,
brcmf_cfg80211_escan_timeout_worker);
If we disconnect the USB by hotplug, it will call
brcmf_usb_disconnect to make cleanup. The invoking chain is :
brcmf_usb_disconnect
->brcmf_usb_disconnect_cb
->brcmf_detach
->brcmf_cfg80211_detach
->kfree(cfg);
While the timeout woker may still be running. This will cause
a use-after-free bug on cfg in brcmf_cfg80211_escan_timeout_worker.
Fix it by deleting the timer and canceling the worker in
brcmf_cfg80211_detach.
[
[email protected]: keep timer delete as is and cancel work just before free]
📍 영향받는 시스템
Linux kernel (brcmfmac/brcm80211 driver 사용 시스템)
⚔️ 공격 벡터
물리적인 USB 장치 탈착(Hotplug)을 통한 메모리 관리 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 brcmf_cfg80211_detach 시 워커를 취소하도록 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.