🇰🇷 한글 설명
Linux 커널의 6lowpan 모듈에서 멀티캐스트 컨텍스트 주소 압축 시 발생하는 오프바이원(off-by-one) 오류입니다. 이로 인해 압축된 주소의 RIID 필드가 손상되거나, 초기화되지 않은 커널 스택 메모리가 네트워크를 통해 유출될 수 있습니다.
💡 쉬운 설명
데이터를 압축하는 과정에서 위치를 한 칸씩 잘못 지정하여 데이터가 꼬이는 문제입니다. 이 과정에서 컴퓨터 내부의 중요한 비밀 정보가 담긴 메모리 내용이 외부로 흘러나갈 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
6lowpan: fix off-by-one in multicast context address compression
The second memcpy in lowpan_iphc_mcast_ctx_addr_compress() uses
&data[1] as destination and &ipaddr->s6_addr[11] as source, but
both should be offset by one: &data[2] and &ipaddr->s6_addr[12]
respectively.
This off-by-one has two consequences:
1. data[1] is overwritten with s6_addr[11], corrupting the RIID
field in the compressed multicast address
2. data[5] is never written, so uninitialized kernel stack memory
is transmitted over the network via lowpan_push_hc_data(),
leaking kernel stack contents
The correct inline data layout must match what the decompression
function lowpan_uncompress_multicast_ctx_daddr() expects:
data[0..1] = s6_addr[1..2] (flags/scope + RIID)
data[2..5] = s6_addr[12..15] (group ID)
Also zero-initialize the data array as a defensive measure against
similar bugs in the future.
📍 영향받는 시스템
6lowpan 모듈을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
네트워크를 통해 조작된 멀티캐스트 패킷을 전송하여 커널 스택 메모리 유출 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인