🇰🇷 한글 설명
Linux 커널의 nl80211 무선 스케줄 스캔 파싱 함수에서, cfg80211_scan_request의 channels 배열에 붙은 __counted_by 속성이 가리키는 n_channels 값이 배열을 채우기 전에 설정되지 않아 경계 검사 오류가 발생할 수 있습니다. 패치는 할당된 메모리 크기를 n_channels의 초기값으로 설정하고, 배열 채우기 후 실제 개수로 갱신합니다.
💡 쉬운 설명
리눅스 커널의 무선 랜 설정 기능에서 데이터 크기를 잘못 확인하는 문제가 있었습니다. 이로 인해 시스템 경고가 발생하거나 설정에 따라 커널이 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: nl80211: fix bounds checker error in nl80211_parse_sched_scan
The channels array in the cfg80211_scan_request has a __counted_by
attribute attached to it, which points to the n_channels variable. This
attribute is used in bounds checking, and if it is not set before the
array is filled, then the bounds sanitizer will issue a warning or a
kernel panic if CONFIG_UBSAN_TRAP is set.
This patch sets the size of allocated memory as the initial value for
n_channels. It is updated with the actual number of added elements after
the array is filled.
📍 영향받는 시스템
커널에 cfg80211/nl80211 무선 스택을 포함하고 해당 패치가 적용되지 않은 Linux 커널 버전 (수정 커밋 적용 전 6.x 계열 일부)
⚔️ 공격 벡터
로컬 권한이 있는 사용자가 무선 스케줄 스캔 요청을 조작해 경계 검사 경고 또는 커널 패닉을 유발할 수 있습니다.
🛡️ 대응 방법
배포판 보안 업데이트를 적용하거나 해당 패치가 포함된 최신 Linux 커널로 업그레이드하세요.
🔧 검증 코드
커널 버전이 패치 적용 이전 버전인지 확인하고, CONFIG_CFG80211이 y 또는 m이면 무선 스택이 활성화된 것이며 CONFIG_UBSAN_TRAP=y이면 커널 패닉 가능성이 더 높습니다.
uname -r && grep -i -E 'CONFIG_CFG80211|CONFIG_UBSAN_TRAP' /boot/config-$(uname -r) 2>/dev/null