🇰🇷 한글 설명
Linux 커널의 CIFS 구현 중 parse_server_interfaces() 함수에서 언더플로우 취약점이 발견되었습니다. ssize_t 타입과 size_t 타입 간의 비교 과정에서 부호 있는 정수가 부호 없는 정수로 변환되어, 남은 바이트 수가 음수임에도 루프가 종료되지 않고 계속 실행되는 문제가 있습니다.
💡 쉬운 설명
컴퓨터가 데이터의 남은 양을 계산할 때 숫자의 종류를 잘못 비교하여, 데이터가 이미 바닥났음에도 계속 읽으려고 시도하는 오류입니다. 이로 인해 시스템의 중요한 메모리 영역을 침범하거나 프로그램이 비정상적으로 작동할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cifs: fix underflow in parse_server_interfaces()
In this loop, we step through the buffer and after each item we check
if the size_left is greater than the minimum size we need. However,
the problem is that "bytes_left" is type ssize_t while sizeof() is type
size_t. That means that because of type promotion, the comparison is
done as an unsigned and if we have negative bytes left the loop
continues instead of ending.
📍 영향받는 시스템
CIFS 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 CIFS 서버 인터페이스 데이터를 통해 커널 메모리 언더플로우 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.