🇰🇷 한글 설명
Linux 커널의 USBTMC 드라이버에서 인터럽트-IN 알림을 처리할 때 URB의 실제 데이터 길이를 확인하지 않는 취약점이 발견되었습니다. 데이터 헤더가 존재할 만큼 충분한 길이가 아닐 경우, 드라이버가 범위를 벗어난 읽기를 수행하거나 이전 알림의 잔류 데이터를 잘못 소비할 수 있습니다.
💡 쉬운 설명
USB 장치가 보내는 알림 메시지의 길이를 제대로 확인하지 않아 발생하는 문제입니다. 이로 인해 컴퓨터가 잘못된 데이터를 읽거나 시스템 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: usbtmc: check URB actual_length for interrupt-IN notifications
USBTMC devices can use an optional interrupt endpoint for notification
messages. These typically contain two-byte headers indicating the
payload format, but the driver does not check if these headers are
present before accessing the data buffers. In cases where the URB
actual_length is not enough to fit these headers, the driver will either
cause an out-of-bounds read, or consume stale leftover data from a
previous notification.
Fix by checking if actual_data contains enough bytes for the headers,
otherwise resubmit URB to the interrupt endpoint.
📍 영향받는 시스템
USBTMC 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된 짧은 길이의 인터럽트 메시지를 보내는 악의적인 USB 장치 연결
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.