🇰🇷 한글 설명
Linux 커널의 atmel_mxt_ts 드라이버에서 경계 검사 오류로 인해 발생하는 취약점입니다. 설정 파일의 객체 크기가 드라이버가 알고 있는 크기보다 클 경우, 인덱스 계산 오류로 인해 인접한 메모리의 1바이트를 덮어쓸 수 있습니다.
💡 쉬운 설명
터치스크린 드라이버가 설정 파일을 읽을 때 범위를 잘못 계산하여 옆에 있는 데이터를 실수로 건드리는 문제입니다. 이로 인해 시스템의 중요한 정보가 아주 조금씩 변형될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Input: atmel_mxt_ts - fix boundary check in mxt_prepare_cfg_mem
When a configuration file provides an object size that is larger than the
driver's known mxt_obj_size(object), the driver intends to discard the
extra bytes.
The loop iterates using for (i = 0; i < size; i++). Inside the loop, the
condition to skip processing extra bytes is:
if (i > mxt_obj_size(object))
continue;
Since i is a 0-based index, the valid indices for the object are 0 through
mxt_obj_size(object) - 1.
When i == mxt_obj_size(object), the condition evaluates to false, and the
code processes the byte instead of discarding it.
This causes the code to calculate byte_offset = reg + i - cfg->start_ofs
and writes the byte there, overwriting exactly one byte of the adjacent
instance or object.
Update the boundary check to skip extra bytes correctly by using >=.
📍 영향받는 시스템
atmel_mxt_ts 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된 구성 파일(Configuration file)을 통해 드라이버의 메모리 경계를 초과하는 데이터를 입력
🛡️ 대응 방법
경계 검사 조건문을 'i > mxt_obj_size(object)'에서 'i >= mxt_obj_size(object)'로 수정한 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인