CVE-2026-64274 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 25.

리눅스 커널에서 다음 취약점이 해결되었습니다:

입력 장치: goodix - 장치가 보고한 접촉 수 제한

goodix_ts_read_input_report() 함수는 장치가 보고하는 터치 포인트의 개수를 스택 상의 버퍼로 복사합니다.

u8 point_data[2 + GOODIX_MAX_CONTACT_SIZE * GOODIX_MAX_CONTACTS];

이 버퍼는 최대 GOODIX_MAX_CONTACTS(10)개의 접촉을 수용할 수 있도록 크기가 지정되어 있습니다. 유일한 런타임 체크는 ts->max_touch_num에 대해 인터럽트당 개수를 제한하지만, 이 값은 장치 구성 블록의 4비트 필드에서 그대로 가져온 것으로 결코 클램프(clamp)되지 않습니다:

ts->max_touch_num = ts->config[MAX_CONTACTS_LOC] & 0x0f;

이 니블(nibble) 값은 0~15가 될 수 있으므로, 오작동하는 장치나 악의적인/위조된 컨트롤러(또는 I2C 버스를 조작하려는 공격자)가 최대 15개의 접촉을 보고할 수 있습니다. goodix_ts_read_input_report() 함수는 이후 touch_num이 최대 15인 경우를 허용하며, 두 번째 goodix_i2c_read() 호출은 단일 접촉 헤더 뒤에 ts->contact_size * (touch_num - 1) 바이트만큼 point_data 버퍼에 기록합니다. 이는 92바이트의 버퍼를 초과하여 최대 30바이트(9바이트 보고서 형식의 경우 45바이트)까지 스택 밖 영역을 작성하는(stack out-of-bounds write) 결과를 초래합니다.

구성 블록에서 읽을 때 max_touch_num 값을 GOODIX_MAX_CONTACTS로 클램프하며, 이는 point_data[] 배열의 크기에 해당하는 접촉 수입니다.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

출처

Do you know our Splunk app?

Download it now for free!