🇰🇷 한글 설명
Linux 커널의 mac80211 드라이버에서 MLO 링크 제거 시 RX 통계용 percpu 버퍼가 RCU 동기화 없이 즉시 해제되는 취약점입니다. 이로 인해 RCU 읽기 잠금을 사용하는 경로에서 이미 해제된 메모리에 접근하는 Use-After-Free(UAF) 상황이 발생할 수 있습니다.
💡 쉬운 설명
무선 랜 연결을 끊을 때 데이터 기록용 메모리를 너무 빨리 지워버려서 발생하는 문제입니다. 이로 인해 시스템이 잘못된 메모리 주소를 참조하여 오류가 발생하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: defer link RX stats percpu free to RCU
sta_remove_link() frees a removed MLO link's RX stats percpu buffer right
away, but defers only the link container to RCU:
sta_info_free_link(&alloc->info);
kfree_rcu(alloc, rcu_head);
The RX fast path reads link_sta under rcu_read_lock and writes the percpu
stats. A reader that resolved link_sta before the removal keeps the
pointer. The container stays alive from the kfree_rcu, so the read still
works. But the percpu block it points to is already freed. This needs
uses_rss. That is when pcpu_rx_stats exists.
The full STA teardown frees the deflink stats only after
synchronize_net(). The link removal path had no such barrier. The race is
hard to win in practice, but the free should still wait for RCU.
Free the link together with its data from a single RCU callback, so the
percpu block is reclaimed only after readers drain.
📍 영향받는 시스템
Linux kernel (mac80211 driver components)
⚔️ 공격 벡터
특정 무선 네트워크 연결(MLO link)을 빈번하게 생성하고 제거하는 과정을 통한 레이스 컨디션 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 RCU 콜백을 통해 메모리가 안전하게 해제되도록 수정해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.
📊 CVSS Vector String
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
NVIDIA vGPU Guest Driver for Linux