🇰🇷 한글 설명
Linux 커널의 mac80211 드라이버에서 ieee80211_tx_prepare_skb() 함수 호출 실패 시 skb(소켓 버퍼)를 해제하지 않는 메모리 누수 취약점이 발견되었습니다. 이를 해결하기 위해 첫 번째 오류 경로에 kfree_skb()를 추가하여 모든 오류 경로에서 메모리가 일관되게 해제되도록 수정되었습니다.
💡 쉬운 설명
무선 랜을 사용하는 과정에서 컴퓨터가 사용하던 메모리를 제대로 돌려주지 않고 계속 쌓아두는 문제가 있었습니다. 이 문제가 방치되면 시스템의 메모리가 부족해져 컴퓨터가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: always free skb on ieee80211_tx_prepare_skb() failure
ieee80211_tx_prepare_skb() has three error paths, but only two of them
free the skb. The first error path (ieee80211_tx_prepare() returning
TX_DROP) does not free it, while invoke_tx_handlers() failure and the
fragmentation check both do.
Add kfree_skb() to the first error path so all three are consistent,
and remove the now-redundant frees in callers (ath9k, mt76,
mac80211_hwsim) to avoid double-free.
Document the skb ownership guarantee in the function's kdoc.
📍 영향받는 시스템
Linux kernel (mac80211 subsystem 사용 시스템)
⚔️ 공격 벡터
특수하게 조작된 무선 네트워크 패킷을 전송하여 메모리 누수를 유발하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
현재 사용 중인 커널 버전과 mac80211 모듈의 존재 여부를 확인하여 패치 적용 여부를 검토합니다.
uname -r && grep -i 'mac80211' /lib/modules/$(uname -r)/kernel/drivers/net/wireless/mac80211.ko 2>/dev/null