🇰🇷 한글 설명
Linux 커널의 qrtr 서브시스템 내 qrtr_endpoint_post() 함수에서 32비트 정수 오버플로 취약점이 발견되었습니다. 공격자가 조작된 크기의 패킷을 전송할 경우, 정수 오버플로로 인해 유효성 검사를 우회하고 커널 메모리에 범위를 벗어난 쓰기(OOB Write)를 수행하여 커널 패닉(Oops)을 유발할 수 있습니다.
💡 쉬운 설명
32비트 시스템의 리눅스 커널에서 데이터 크기를 계산할 때 숫자가 너무 커져서 발생하는 오류입니다. 잘못된 크기의 데이터를 보내면 컴퓨터의 핵심 부분인 커널이 멈추거나 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: qrtr: fix 32-bit integer overflow in qrtr_endpoint_post()
qrtr_endpoint_post() validates an incoming packet with
if (!size || len != ALIGN(size, 4) + hdrlen)
goto err;
where size comes from the wire. On 32-bit, size_t is 32 bits and
ALIGN(size, 4) wraps to 0 for size >= 0xfffffffd, so the check
passes and skb_put_data(skb, data + hdrlen, size) writes past the
hdrlen-sized skb and oopses the kernel. 64-bit is unaffected.
This is the 32-bit residual of ad9d24c9429e2 ("net: qrtr: fix OOB
Read in qrtr_endpoint_post"), which fixed only the 64-bit case.
Reject any size that cannot fit the buffer before the ALIGN.
📍 영향받는 시스템
32비트 아키텍처를 사용하는 Linux 커널 (64비트는 영향 없음)
⚔️ 공격 벡터
네트워크를 통해 조작된 매우 큰 size 값을 가진 qrtr 패킷을 전송
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력 결과가 i386, arm 등 32비트 아키텍처인지 확인하고 현재 커널 버전을 체크합니다.