🇰🇷 한글 설명
Linux 커널의 USB Type-C UCSI 드라이버에서 커넥터 번호에 대한 유효성 검사가 누락되어 발생하는 취약점입니다. 악의적이거나 버그가 있는 PPM(Power Policy Manager)이 허용된 범위를 벗어난 커넥터 번호를 전달할 경우, 배열의 범위를 벗어난 메모리 영역에 접근하여 schedule_work()를 호출할 수 있습니다.
💡 쉬운 설명
USB-C 연결을 관리하는 소프트웨어가 잘못된 번호를 입력받았을 때 이를 제대로 확인하지 않아 발생하는 문제입니다. 이를 통해 컴퓨터의 잘못된 메모리 영역을 건드려 시스템 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: ucsi: validate connector number in ucsi_connector_change()
The connector number in a UCSI CCI notification is a 7-bit field
supplied by the PPM. ucsi_connector_change() uses it to index the
ucsi->connector[] array without checking it against the number of
connectors the PPM reported at init time, so a buggy or malicious PPM
(EC firmware, or an I2C-attached UCSI controller on the ccg / stm32g0 /
glink transports) can drive schedule_work() on memory past the end of
the array.
Reject connector numbers that are zero or exceed cap.num_connectors
before dereferencing the array.
📍 영향받는 시스템
Linux kernel (USB Type-C UCSI driver)
⚔️ 공격 벡터
버그가 있거나 조작된 EC 펌웨어 또는 I2C 연결 UCSI 컨트롤러를 통한 악의적인 CCI 알림 전송
🛡️ 대응 방법
커넥터 번호가 0이거나 최대 커넥터 수를 초과하는지 확인하는 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.