🇰🇷 한글 설명
Linux 커널의 net: rfkill: gpio 모듈에서 초기화되지 않은 포인터를 참조하여 시스템 충돌(Crash)이 발생할 수 있는 취약점입니다. 특정 x86 시스템의 ACPI 장치 설정 시 'type' 속성이 누락되면 uninitialized 변수인 type_name이 초기화되지 않은 상태로 함수에 전달되어 문제가 발생합니다.
💡 쉬운 설명
컴퓨터의 무선 통신 기능을 제어하는 소프트웨어에서 준비되지 않은 정보를 잘못 읽어 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 특정 하드웨어 설정이 되어 있는 컴퓨터에서 발생할 가능성이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: rfkill: gpio: Fix crash due to dereferencering uninitialized pointer
Since commit 7d5e9737efda ("net: rfkill: gpio: get the name and type from
device property") rfkill_find_type() gets called with the possibly
uninitialized "const char *type_name;" local variable.
On x86 systems when rfkill-gpio binds to a "BCM4752" or "LNV4752"
acpi_device, the rfkill->type is set based on the ACPI acpi_device_id:
rfkill->type = (unsigned)id->driver_data;
and there is no "type" property so device_property_read_string() will fail
and leave type_name uninitialized, leading to a potential crash.
rfkill_find_type() does accept a NULL pointer, fix the potential crash
by initializing type_name to NULL.
Note likely sofar this has not been caught because:
1. Not many x86 machines actually have a "BCM4752"/"LNV4752" acpi_device
2. The stack happened to contain NULL where type_name is stored
📍 영향받는 시스템
Linux kernel (rfkill-gpio 모듈을 사용하는 x86 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 ACPI 장치 속성을 조작하여 커널 패닉을 유도할 수 있음
🛡️ 대응 방법
커널 패치(commit 7d5e9737efda 관련 수정 사항 포함)를 적용하여 type_name 변수를 NULL로 초기화해야 함
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인합니다.