🇰🇷 한글 설명
Linux 커널의 MCP2221 HID 드라이버에서 발생하는 취약점으로, mcp2221_raw_event() 함수가 입력되는 HID 보고서의 크기를 검증하지 않습니다. 악의적인 USB 장치가 조작된 보고서를 보낼 경우, 커널 메모리 경계를 넘어 데이터를 읽어 사용자 공간으로 초기화되지 않은 커널 메모리를 유출할 수 있습니다.
💡 쉬운 설명
USB 장치가 가짜 정보를 보낼 때 컴퓨터가 그 정보의 길이를 제대로 확인하지 않아 발생하는 문제입니다. 이로 인해 컴퓨터 내부의 중요한 비밀 정보가 외부로 새 나갈 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
HID: mcp2221: validate report size in mcp2221_raw_event()
mcp2221_raw_event() never validates the size of incoming HID reports.
In the MCP2221_I2C_GET_DATA path it trusts the device-supplied data[3]
as the copy length without checking that 4 + data[3] bytes actually
exist in the received report. A malicious or misbehaving USB device can
send a short report with a large data[3], causing the memcpy to read
past the valid report data in the HID transfer buffer and leak
uninitialized kernel memory back to userspace through the I2C/SMBus
read path.
Add a minimum size check at entry and validate that the source range
fits within the received report before the copy.
📍 영향받는 시스템
Linux kernel (MCP2221 HID driver 사용 시스템)
⚔️ 공격 벡터
조작된 HID 보고서를 전송하는 악의적인 또는 오작동하는 USB 장치를 연결
🛡️ 대응 방법
MCP2221 드라이버의 보고서 크기 검증 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 패치된 버전인지 확인합니다.