🇰🇷 한글 설명
Linux 커널의 mac80211 WiFi 드라이버에서 FILS discovery 설정 중 메모리 할당 실패 시 발생하는 Double Free 취약점입니다. 새로운 템플릿을 할당하기 전에 기존 객체를 먼저 해제하여, 할당 실패 시 이미 해제된 메모리 주소를 다시 참조하게 되어 시스템 충돌을 유발합니다.
💡 쉬운 설명
와이파이 설정 중에 메모리가 부족하면, 이미 삭제된 메모리 정보를 다시 삭제하려고 시도하여 컴퓨터 시스템이 멈추거나 오류가 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: fix fils_discovery double free on alloc failure
ieee80211_set_fils_discovery() calls kfree_rcu() on the old template
before allocating the replacement. If the kzalloc() then fails, it
returns -ENOMEM while link->u.ap.fils_discovery still points at the
object already queued for freeing. A later update or AP teardown
(ieee80211_stop_ap()) re-queues that same rcu_head; the second free is
caught by KASAN when the RCU sheaf is processed in softirq:
BUG: KASAN: double-free in rcu_free_sheaf (mm/slub.c:5850)
Free of addr ffff88800c065280 by task swapper/0/0
...
__rcu_free_sheaf_prepare (mm/slub.c:2634 mm/slub.c:2940)
rcu_free_sheaf (mm/slub.c:5850)
rcu_core (kernel/rcu/tree.c:2617 kernel/rcu/tree.c:2869)
handle_softirqs (kernel/softirq.c:622)
The buggy address belongs to the cache kmalloc-96 of size 96
Queue the old object for kfree_rcu() only after the new one is published,
matching ieee80211_set_probe_resp() and ieee80211_set_s1g_short_beacon().
📍 영향받는 시스템
Linux Kernel (mac80211 subsystem)
⚔️ 공격 벡터
메모리 할당 실패를 유도하는 특수한 네트워크 환경 또는 로컬 메모리 압박 상황
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.