🇰🇷 한글 설명
리눅스 커널의 USB Type-C 드라이버에서 에러 포인터 역참조 취약점이 발견되었습니다. 파트너 등록 실패 시 에러 메시지만 출력하고 함수를 종료하지 않아, 잘못된 메모리 주소에 접근하는 문제가 발생합니다.
💡 쉬운 설명
USB 장치를 연결할 때 오류가 발생하면 컴퓨터가 잘못된 메모리 위치를 읽으려다 시스템이 멈추거나 오류가 날 수 있는 문제입니다. 장치 연결 과정에서 발생하는 소프트웨어적 실수로 인해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: Fix error pointer dereference
The variable tps->partner is checked for an error pointer and then if it
is, it sends an error message but does not return and then immediately
dereferenced a few lines below:
tps->partner = typec_register_partner(tps->port, &desc);
if (IS_ERR(tps->partner))
dev_warn(tps->dev, "%s: failed to register partnet\n", __func__);
if (desc.identity) {
typec_partner_set_identity(tps->partner);
cd321x->cur_partner_identity = st.partner_identity;
}
Add early return and fix spelling mistake in error message.
Detected by Smatch:
drivers/usb/typec/tipd/core.c:827 cd321x_update_work() error:
'tps->partner' dereferencing possible ERR_PTR()
📍 영향받는 시스템
Linux Kernel (USB Type-C driver 관련 모듈 사용 시스템)
⚔️ 공격 벡터
물리적으로 조작된 USB Type-C 장치를 연결하여 커널 에러 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인