🇰🇷 한글 설명
Linux 커널의 mac80211 구성 요소에서 32비트 시스템 사용 시 mbss 변경 플래그가 손상되는 취약점이 발견되었습니다. 64비트 변수를 처리하는 과정에서 32비트 시스템의 데이터 크기 불일치로 인해 비트 탐색 오류가 발생합니다.
💡 쉬운 설명
32비트 컴퓨터에서 와이파이 설정을 변경할 때, 컴퓨터가 데이터의 크기를 잘못 계산하여 중요한 정보를 엉뚱하게 처리하는 문제입니다. 이로 인해 와이파이 연결 설정이 제대로 반영되지 않거나 시스템 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: fix mbss changed flags corruption on 32 bit systems
On 32-bit systems, the size of an unsigned long is 4 bytes,
while a u64 is 8 bytes. Therefore, when using
or_each_set_bit(bit, &bits, sizeof(changed) * BITS_PER_BYTE),
the code is incorrectly searching for a bit in a 32-bit
variable that is expected to be 64 bits in size,
leading to incorrect bit finding.
Solution: Ensure that the size of the bits variable is correctly
adjusted for each architecture.
Call Trace:
? show_regs+0x54/0x58
? __warn+0x6b/0xd4
? ieee80211_link_info_change_notify+0xcc/0xd4 [mac80211]
? report_bug+0x113/0x150
? exc_overflow+0x30/0x30
? handle_bug+0x27/0x44
? exc_invalid_op+0x18/0x50
? handle_exception+0xf6/0xf6
? exc_overflow+0x30/0x30
? ieee80211_link_info_change_notify+0xcc/0xd4 [mac80211]
? exc_overflow+0x30/0x30
? ieee80211_link_info_change_notify+0xcc/0xd4 [mac80211]
? ieee80211_mesh_work+0xff/0x260 [mac80211]
? cfg80211_wiphy_work+0x72/0x98 [cfg80211]
? process_one_work+0xf1/0x1fc
? worker_thread+0x2c0/0x3b4
? kthread+0xc7/0xf0
? mod_delayed_work_on+0x4c/0x4c
? kthread_complete_and_exit+0x14/0x14
? ret_from_fork+0x24/0x38
? kthread_complete_and_exit+0x14/0x14
? ret_from_fork_asm+0xf/0x14
? entry_INT80_32+0xf0/0xf0
[restore no-op path for no changes]
📍 영향받는 시스템
32-bit 아키텍처를 사용하는 Linux 커널 기반 시스템 (mac80211 모듈 사용 시)
⚔️ 공격 벡터
로컬 또는 네트워크를 통한 무선 네트워크 설정 변경 시도 (데이터 손상 유도)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 아키텍처별 비트 크기 계산 로직을 수정해야 합니다.
🔧 검증 코드
출력된 아키텍처가 i686 또는 armv7l 등 32비트인지 확인하고, 현재 커널 버전이 취약점이 해결된 최신 버전인지 확인합니다.