🇰🇷 한글 설명
Linux 커널의 IPv6 IOAM6 모듈에서 스키마 길이를 8비트 변수에 저장하면서 정수 오버플로우가 발생합니다. 이로 인해 버퍼 크기 검증을 우회하고 메모리 버퍼 오버런을 일으켜 커널 크래시 또는 임의 코드 실행이 가능합니다.
💡 쉬운 설명
Linux 네트워크 기능 중 데이터 크기를 계산하는 부분에서 오류가 발생해 메모리를 초과해서 쓸 수 있습니다. 특정 네트워크 패킷을 보내면 시스템이 충돌하거나 악의적인 코드가 실행될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/ipv6: ioam6: prevent schema length wraparound in trace fill
ioam6_fill_trace_data() stores the schema contribution to the trace
length in a u8. With bit 22 enabled and the largest schema payload,
sclen becomes 1 + 1020 / 4, wraps from 256 to 0, and bypasses the
remaining-space check. __ioam6_fill_trace_data() then positions the
write cursor without reserving the schema area but still copies the
4-byte schema header and the full schema payload, overrunning the trace
buffer.
Keep sclen in an unsigned int so the remaining-space check and the write
cursor calculation both see the full schema length.
📍 영향받는 시스템
Linux 커널 5.15 이상 (최신 패치 이전 버전)
⚔️ 공격 벡터
원격 공격자가 특정 IOAM 추적 옵션이 설정된 IPv6 패킷을 전송하여 대상 시스템의 커널 메모리 오버런 유발
🛡️ 대응 방법
Linux 커널을 최신 LTS 버전 또는 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
커널 버전을 확인하고 dmesg 로그에서 IOAM 관련 오류 메시지가 없으면 보안 패치가 적용된 상태입니다
uname -r | grep -E '^[0-9]+\.[0-9]+' && dmesg 2>/dev/null | grep -i ioam | tail -5