🇰🇷 한글 설명
Linux 커널 rtlwifi 드라이버의 미사용 함수 check_buddy_priv로 인한 취약점입니다. 프로브 실패 시 메모리가 전역 리스트에서 제거되지 않아 재프로브 시 해제된 메모리에 접근하는 use-after-free 취약점이 발생합니다.
💡 쉬운 설명
WiFi 드라이버가 메모리를 제대로 정리하지 않아 같은 기기를 다시 인식할 때 이미 삭제된 메모리에 접근합니다. 공격자가 커널 메모리를 조작하거나 시스템을 크래시시킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: rtlwifi: remove unused check_buddy_priv
Commit 2461c7d60f9f ("rtlwifi: Update header file") introduced a global
list of private data structures.
Later on, commit 26634c4b1868 ("rtlwifi Modify existing bits to match
vendor version 2013.02.07") started adding the private data to that list at
probe time and added a hook, check_buddy_priv to find the private data from
a similar device.
However, that function was never used.
Besides, though there is a lock for that list, it is never used. And when
the probe fails, the private data is never removed from the list. This
would cause a second probe to access freed memory.
Remove the unused hook, structures and members, which will prevent the
potential race condition on the list and its corruption during a second
probe when probe fails.
📍 영향받는 시스템
Linux kernel rtlwifi driver (Realtek 무선 드라이버 모듈)
⚔️ 공격 벡터
로컬 공격자가 WiFi 드라이버 재프로브 시 use-after-free 익스플로잇으로 권한 상승
🛡️ 대응 방법
Linux 커널을 패치된 버전으로 업데이트하거나 rtlwifi 드라이버 언로드
🔧 검증 코드
함수명이 출력되면 취약한 버전, 출력 안 되면 이미 패치된 커널
strings /boot/vmlinuz-$(uname -r) 2>/dev/null | grep -i check_buddy_priv