🔍 CVE-2026-64330

7.8
CVSS Score
HIGH
2026-07-25
2026-09-04 14:49
✅ 완료

🇰🇷 한글 설명

Linux 커널의 USB Type-C TCPM 모듈에서 SVID 인덱스에 대한 경계 검증이 누락되어 발생하는 취약점입니다. 공격자가 조작된 SVID 값을 주입하여 인덱스 범위를 벗어난 메모리 읽기를 수행함으로써 임의의 SVID를 등록할 수 있습니다.

💡 쉬운 설명

USB 연결 시 상대방 장치가 잘못된 번호를 요청하여 컴퓨터의 메모리 영역을 넘겨보게 만드는 보안 결함입니다. 이를 통해 공격자는 허가되지 않은 가짜 장치 기능을 시스템에 등록할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: typec: tcpm: Validate SVID index in svdm_consume_modes() In svdm_consume_modes(), the SVID value is read from pmdata->svids using pmdata->svid_index as an array index without bounds validation: paltmode->svid = pmdata->svids[pmdata->svid_index]; If pmdata->svid_index is driven beyond SVID_DISCOVERY_MAX (16), it results in an out-of-bounds read of the pmdata->svids array. Because pd_mode_data is embedded inside struct tcpm_port, indexing past svids reads into adjacent fields. In particular: - At index 16, it reads the altmodes count. - At index 18 and beyond, it reads into altmode_desc[], which contains partner-supplied SVDM Discovery Modes VDOs. By injecting a chosen SVID into altmode_desc[0].vdo and driving svid_index to 20, the partner can force paltmode->svid to be loaded with an arbitrary, partner- chosen SVID, which is then registered via typec_partner_register_altmode(). Fix this by validating that pmdata->svid_index is non-negative and strictly less than pmdata->nsvids before accessing the pmdata->svids array inside svdm_consume_modes().

📍 영향받는 시스템

Linux kernel (usb: typec: tcpm 모듈 포함 버전)

⚔️ 공격 벡터

악의적인 USB 파트너 장치를 연결하여 조작된 SVID 인덱스 값을 전달하는 방식

🛡️ 대응 방법

svdm_consume_modes() 함수 내에서 svid_index가 nsvids 범위 내에 있는지 확인하는 경계 검증 로직을 적용한 커널 업데이트 수행

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel