🔍 CVE-2024-35827

7.8
CVSS Score
HIGH
2024-05-17
2026-08-04 11:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 io_uring/net 구성 요소 내 io_recvmsg_mshot_prep() 함수에서 정수 언더플로우 취약점이 발견되었습니다. size_t 타입인 controllen 변수를 int 타입으로 형변환하는 과정에서 오버플로우 체크 로직이 정상적으로 작동하지 않을 수 있습니다.

💡 쉬운 설명

컴퓨터가 숫자를 계산할 때 데이터 저장 공간의 크기를 잘못 지정하여 발생하는 오류입니다. 이로 인해 계산 결과가 예상과 다르게 음수로 변하면서 보안 검사를 우회할 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: io_uring/net: fix overflow check in io_recvmsg_mshot_prep() The "controllen" variable is type size_t (unsigned long). Casting it to int could lead to an integer underflow. The check_add_overflow() function considers the type of the destination which is type int. If we add two positive values and the result cannot fit in an integer then that's counted as an overflow. However, if we cast "controllen" to an int and it turns negative, then negative values *can* fit into an int type so there is no overflow. Good: 100 + (unsigned long)-4 = 96 <-- overflow Bad: 100 + (int)-4 = 96 <-- no overflow I deleted the cast of the sizeof() as well. That's not a bug but the cast is unnecessary.

📍 영향받는 시스템

io_uring을 사용하는 Linux 커널 버전

⚔️ 공격 벡터

조작된 네트워크 패킷을 io_uring 인터페이스를 통해 전송하여 정수 언더플로우 유도

🛡️ 대응 방법

io_uring 관련 패치가 적용된 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전인지 배포판 보안 공지를 통해 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel