🇰🇷 한글 설명
리눅스 커널의 USB Type-C UCSI 드라이버에서 발생하는 경계 외 참조(Out-of-bounds) 취약점입니다. 사용자가 debugfs를 통해 제어 가능한 변수가 배열의 크기보다 큰 값을 가질 수 있어 메모리 오염을 유발할 수 있습니다.
💡 쉬운 설명
USB 연결을 관리하는 프로그램에서 데이터 크기를 잘못 계산하여, 허용된 범위를 넘어서는 데이터를 메모리에 쓰려고 시도하는 오류입니다. 이를 통해 시스템의 보안이 뚫리거나 프로그램이 강제로 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: fix potential out of bounds in ucsi_ccg_update_set_new_cam_cmd()
The "*cmd" variable can be controlled by the user via debugfs. That means
"new_cam" can be as high as 255 while the size of the uc->updated[] array
is UCSI_MAX_ALTMODES (30).
The call tree is:
ucsi_cmd() // val comes from simple_attr_write_xsigned()
-> ucsi_send_command()
-> ucsi_send_command_common()
-> ucsi_run_command() // calls ucsi->ops->sync_control()
-> ucsi_ccg_sync_control()
📍 영향받는 시스템
USB Type-C UCSI 드라이버를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
공격자가 debugfs를 통해 조작된 값을 전달하여 메모리 경계를 초과하는 명령을 실행
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 보안 업데이트 버전인지 확인