🇰🇷 한글 설명
Linux 커널의 cros_ec_keyb 드라이버에서 특정 조건(buttons_switches_only 설정 시)에서 ckdev->idev가 NULL로 유지되는 취약점이 발견되었습니다. 이 상태에서 EC_MKBP_EVENT_KEY_MATRIX 이벤트가 발생하면 유효하지 않은 메모리 주소에 접근하여 커널 패닉이 발생할 수 있습니다.
💡 쉬운 설명
키보드 관련 장치 드라이버가 준비되지 않은 상태에서 잘못된 신호를 받으면 컴퓨터 시스템이 갑자기 멈추거나 오류가 발생하는 문제입니다. 이는 시스템의 안정성을 해칠 수 있는 메모리 오류를 유발합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Input: cros_ec_keyb - fix an invalid memory access
If cros_ec_keyb_register_matrix() isn't called (due to
`buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains
NULL. An invalid memory access is observed in cros_ec_keyb_process()
when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work()
in such case.
Unable to handle kernel read from unreadable memory at virtual address 0000000000000028
...
x3 : 0000000000000000 x2 : 0000000000000000
x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
input_event
cros_ec_keyb_work
blocking_notifier_call_chain
ec_irq_thread
It's still unknown about why the kernel receives such malformed event,
in any cases, the kernel shouldn't access `ckdev->idev` and friends if
the driver doesn't intend to initialize them.
📍 영향받는 시스템
cros_ec_keyb 드라이버를 사용하는 Linux 커널 시스템 (buttons_switches_only 옵션 활성화 시)
⚔️ 공격 벡터
하드웨어(EC)로부터 조작되거나 잘못된 키 매트릭스 이벤트가 전달될 경우 발생
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 확인