🇰🇷 한글 설명
리눅스 커널의 thermal/int340x_thermal 드라이버에서 데이터 크기가 0인 경우 ZERO_SIZE_PTR(0x10)이 반환되어 발생하는 취약점입니다. 이로 인해 data_vault_read() 함수가 잘못된 메모리 주소인 0x10을 참조하게 되어 커널 NULL 포인터 역참조 오류가 발생합니다.
💡 쉬운 설명
하드웨어 온도 조절 장치가 잘못된 정보를 전달할 때, 컴퓨터의 핵심 시스템인 커널이 엉뚱한 메모리 주소를 읽으려다 멈추거나 오류를 일으키는 문제입니다. 이로 인해 시스템이 갑자기 재부팅되거나 중단될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
thermal/int340x_thermal: handle data_vault when the value is ZERO_SIZE_PTR
In some case, the GDDV returns a package with a buffer which has
zero length. It causes that kmemdup() returns ZERO_SIZE_PTR (0x10).
Then the data_vault_read() got NULL point dereference problem when
accessing the 0x10 value in data_vault.
[ 71.024560] BUG: kernel NULL pointer dereference, address:
0000000000000010
This patch uses ZERO_OR_NULL_PTR() for checking ZERO_SIZE_PTR or
NULL value in data_vault.
📍 영향받는 시스템
int340x_thermal 드라이버를 사용하는 리눅스 커널 기반 시스템
⚔️ 공격 벡터
특정 하드웨어(GDDV)로부터 조작된 또는 잘못된 크기의 데이터를 전달받아 커널 오류 유도
🛡️ 대응 방법
ZERO_OR_NULL_PTR() 체크 로직이 포함된 최신 리눅스 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 이후의 버전인지 확인합니다.