🇰🇷 한글 설명
Linux 커널의 mac80211 드라이버 내 minstrel_ht 모듈에서 debugfs를 통해 잘못된 고정 속도 인덱스 값이 입력될 수 있는 취약점입니다. 유효하지 않은 인덱스가 입력될 경우 배열 범위를 벗어난 메모리 접근이 발생하여 인접한 커널 메모리가 손상될 수 있습니다.
💡 쉬운 설명
무선 랜 드라이버 설정 파일에 잘못된 숫자를 입력하면 컴퓨터의 핵심 메모리 영역이 망가질 수 있는 오류입니다. 다만, 이 설정은 관리자 권한이 있어야만 접근할 수 있어 일반 사용자가 직접 공격하기는 어렵습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: minstrel_ht: validate fixed rate index
The fixed_rate_idx debugfs file is a plain u32 attribute, so any value
can be written to it. minstrel_ht_update_stats() then copies the value
into mi->max_tp_rate[] and mi->max_prob_rate, and
minstrel_ht_set_rate() uses MI_RATE_GROUP()/MI_RATE_IDX() to index
minstrel_mcs_groups[] (42 entries) and mi->groups[].rates[] (10 entries)
with it.
Writing e.g. 65535 selects group 4095 and rate index 15, far outside
both arrays. The out-of-bounds entries are dereferenced and updated as
struct minstrel_rate_stats (retry counts, etc.), so the invalid index
corrupts adjacent kernel memory. With CONFIG_UBSAN_BOUNDS the access is
reported as an array-index-out-of-bounds in minstrel_ht_set_rate().
Only a valid group/rate pair, or U32_MAX to disable fixed rate
processing, can be used safely, so reject any other value when the
debugfs file is written.
The file is only reachable through a root-only debugfs mount, so this is
not a privilege boundary. The out-of-bounds access is still a bug that
must not be reachable through a writable debugfs attribute.
📍 영향받는 시스템
Linux Kernel (mac80211/minstrel_ht 모듈 사용 환경)
⚔️ 공격 벡터
루트 권한을 가진 사용자가 debugfs의 fixed_rate_idx 파일에 유효하지 않은 u32 값을 작성하여 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 입력값 검증 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인