🇰🇷 한글 설명
Linux 커널의 wwan t7xx 드라이버에서 모뎀이 제공하는 port_count 값을 검증 없이 루프 경계로 사용하여 발생하는 slab-out-of-bounds read 취약점입니다. 공격자가 조작된 메시지를 보내면 버퍼 크기를 초과하여 메모리를 읽을 수 있으며, 이는 시스템 정보 유출로 이어질 수 있습니다.
💡 쉬운 설명
모뎀이 보내는 데이터의 길이를 제대로 확인하지 않아, 실제 데이터보다 훨씬 더 많은 양을 읽으려고 시도할 때 발생하는 보안 문제입니다. 이로 인해 컴퓨터의 중요한 메모리 정보가 외부로 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: wwan: t7xx: validate port_count against message length in t7xx_port_enum_msg_handler
t7xx_port_enum_msg_handler() uses the modem-supplied port_count field as
a loop bound over port_msg->data[] without checking that the message buffer
contains sufficient data. A modem sending port_count=65535 in a 12-byte
buffer triggers a slab-out-of-bounds read of up to 262140 bytes.
Add a sizeof(*port_msg) check before accessing the port message header
fields to guard against undersized messages.
Add a struct_size() check after extracting port_count and before the loop.
In t7xx_parse_host_rt_data(), guard the rt_feature header read with a
remaining-buffer check before accessing data_len, validate feat_data_len
against the actual remaining buffer to prevent OOB reads and signed
integer overflow on offset.
Pass msg_len from both call sites: skb->len at the DPMAIF path after
skb_pull(), and the validated feat_data_len at the handshake path.
📍 영향받는 시스템
Linux kernel (t7xx wwan driver module)
⚔️ 공격 벡터
조작된 port_count 값을 포함한 악성 모뎀 메시지를 전송하여 메모리 경계 밖을 읽도록 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 메시지 길이 검증 로직 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인