🇰🇷 한글 설명
Linux 커널의 tps6598x_connect() 함수에서 typec_partner_desc 구조체가 완전히 초기화되지 않아 발생하는 취약점입니다. 초기화되지 않은 함수 포인터가 실행될 경우 임의 코드 실행이 가능할 수 있으며, 일부 필드가 초기화되지 않아 스택 데이터가 유출될 위험이 있습니다.
💡 쉬운 설명
USB 연결 시 장치 정보를 저장하는 메모리 공간이 깨끗하게 비워지지 않아 발생하는 문제입니다. 이로 인해 해커가 시스템을 조작하거나 중요한 정보를 훔쳐볼 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: tipd: fix uninitialized typec_partner_desc in tps6598x_connect()
tps6598x_connect() passes a stack-allocated typec_partner_desc to
typec_register_partner() after initializing only usb_pd, accessory and
identity.
typec_register_partner() copies attach and deattach from the descriptor
into the partner. With those fields left unset, garbage function pointers
may be stored and later invoked from typec_partner_link_device() when a USB
device is linked to the port. Uninitialized pd_revision and usb_capability
similarly leak stack data through partner sysfs.
Zero-initialize the descriptor so optional callbacks remain NULL and the
remaining fields are zero.
📍 영향받는 시스템
Linux kernel (usb: typec: tipd 관련 드라이버 포함 버전)
⚔️ 공격 벡터
악의적인 USB 장치를 연결하여 초기화되지 않은 함수 포인터를 실행하거나 스택 데이터를 유출함
🛡️ 대응 방법
커널 패치를 적용하여 typec_partner_desc 구조체를 0으로 초기화(Zero-initialize)해야 함
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인합니다.
💻 영향받는 소프트웨어
IBM Verify Identity Access