🇰🇷 한글 설명
Linux 커널의 wwan iosm 드라이버 내 MUX 다운링크 디코더에서 경계 검사 미흡으로 인한 취약점이 발견되었습니다. 모뎀이 제공하는 인덱스나 길이를 검증하지 않아 메모리 범위를 벗어난 읽기(Out-of-bounds read)가 발생하거나, 테이블 체인이 순환할 경우 무한 루프에 빠질 수 있습니다.
💡 쉬운 설명
통신 모뎀이 보내는 잘못된 데이터를 커널이 제대로 검사하지 않고 읽으려다 시스템 메모리를 침범하거나 무한 반복 작업에 빠지는 문제입니다. 이로 인해 시스템이 멈추거나 보안 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: wwan: iosm: bound device offsets in the MUX downlink decoder
mux_dl_adb_decode() walks a chain of aggregated datagram tables using
offsets and lengths taken from the modem. first_table_index,
next_table_index, table_length, datagram_index and datagram_length are
all device supplied le values. Only first_table_index was checked, and
only for being non zero. The decoder then formed adth = block +
adth_index and read the table header and the datagram entries with no
bound against the received skb. A modem that reports an index or a
length past the downlink buffer makes the decoder read out of bounds.
The buffer is IPC_MEM_MAX_DL_MUX_LITE_BUF_SIZE and skb->len is at most
that, so skb->len is the real limit, but none of these in band offsets
were checked against it.
The table chain is also followed with no forward progress check. The loop
takes the next table from adth->next_table_index and stops only when that
reaches zero. A modem can stage two tables that point at each other, so
the loop never ends. It runs in softirq and clones the skb on every pass.
Validate every device offset and length against skb->len before use.
The block header must fit. Each table header, on entry and after every
next_table_index, must lie inside the skb. The datagram table must fit.
Each datagram index and length must stay inside the skb. The header
padding must not exceed the datagram length so the receive length does
not wrap. Require each next_table_index to move forward so the chain
cannot cycle.
This was reproduced under KASAN as a slab out of bounds read on a normal
downlink receive once the iosm net device is up.
📍 영향받는 시스템
Linux kernel (net: wwan: iosm driver 포함 버전)
⚔️ 공격 벡터
조작된 데이터를 전송하는 악성 모뎀을 통한 네트워크 패킷 주입
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인하십시오.