🇰🇷 한글 설명
Linux 커널의 synaptics-rmi4 드라이버에서 오류 발생 시 보고서 크기가 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 이전의 큰 데이터 크기가 남아있게 되어, 작은 버퍼에 데이터를 복사할 때 힙 버퍼 오버플로우가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 제어하는 프로그램에서 오류가 났을 때 데이터 크기를 0으로 지워야 하는데, 이를 깜빡하고 이전 값을 그대로 남겨두는 문제입니다. 이 때문에 실제 데이터보다 더 큰 값을 사용하게 되어 시스템 메모리가 넘쳐흐르는 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
Input: synaptics-rmi4 - zero report size on F54 work error
In rmi_f54_work(), if an error occurs during report request or command
verification, the code jumped directly to the 'error' label, bypassing
the 'abort' label where f54->report_size was normally zeroed out.
This left f54->report_size containing its previous successful payload
size. If a user then altered the V4L2 format to a smaller size, and a
subsequent run failed, rmi_f54_buffer_queue() would copy the stale,
larger payload size into the shrunken V4L2 buffer, causing a heap
buffer overflow.
Fix this by merging the 'abort' and 'error' labels into a single 'out'
exit path, and ensuring that f54->report_size is always set to 0 on
failure by checking for error and zeroing the local report_size first.
📍 영향받는 시스템
Linux kernel (synaptics-rmi4 driver 포함 버전)
⚔️ 공격 벡터
사용자가 V4L2 형식을 조작하여 작은 버퍼를 생성한 후, 특정 오류를 유도하여 힙 버퍼 오버플로우를 일으킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 rmi_f54_work() 함수의 오류 처리 로직을 수정해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.