🔍 CVE-2026-63962

0.0
CVSS Score
UNKNOWN
2026-07-19
2026-10-21 13:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB Type-C TCPM 드라이버에서 svdm_consume_modes() 함수가 루프 내부에서 배열 경계를 적절히 확인하지 않아 발생하는 취약점입니다. 악의적인 파트너 장치가 비정상적인 수의 VDO를 포함한 ACK를 전송할 경우, 배열 범위를 초과하여 메모리에 데이터를 쓰는 버퍼 오버플로우가 발생할 수 있습니다.

💡 쉬운 설명

USB-C 연결 시 상대방 장치가 가짜 정보를 과도하게 보내면, 컴퓨터의 메모리 영역을 침범하여 시스템 오류나 보안 문제를 일으킬 수 있는 결함입니다. 루프를 돌 때마다 데이터 개수를 확인하지 않아 발생하는 문제입니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: typec: tcpm: bound altmode_desc[] per iteration in svdm_consume_modes() svdm_consume_modes() checks pmdata->altmodes against the array size once before the loop over the count, but forgot to check the bound at every point in the loop. In the well-behaved SVDM discovery flow this is harmless because each of at most SVID_DISCOVERY_MAX SVIDs contributes at most MODE_DISCOVERY_MAX modes, exactly filling altmode_desc[ALTMODE_DISCOVERY_MAX]. But the CMDT_RSP_ACK handler in tcpm_pd_svdm() does not correlate an incoming ACK with any request the port actually sent. Once port->partner is set, an unsolicited Discover Modes ACK is consumed unconditionally. A broken or malicious port partner can therefore drive altmodes to ALTMODE_DISCOVERY_MAX - 1 via the normal flow, and then send one extra Discover Modes ACK with seven VDOs. Because the pre-loop check passes, the loop could then writes up to five entries past altmode_desc[]. For mode_data_prime the next field in struct tcpm_port is the partner_altmode[] pointer array, which then receives partner-chosen SVID/VDO bytes. Move the bound check inside the loop so the array can never be indexed past ALTMODE_DISCOVERY_MAX regardless of how many VDOs the partner supplies or how the function was reached.

📍 영향받는 시스템

Linux kernel (USB Type-C TCPM subsystem)

⚔️ 공격 벡터

악의적으로 조작된 USB-C 파트너 장치를 통한 비정상적인 Discover Modes ACK 전송

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 svdm_consume_modes() 내 경계 검사 로직을 수정해야 합니다.

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전 이상인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel