🇰🇷 한글 설명
리눅스 커널의 CIFS 구성 요소에서 NFS 재파싱 포인트(reparse points)를 처리할 때 버퍼 오버플로가 발생하는 취약점입니다. 데이터 길이를 계산할 때 InodeType 크기를 제대로 차감하지 않아 메모리 경계를 벗어난 접근이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 읽을 때 데이터의 실제 길이를 잘못 계산하여, 허용된 범위를 넘어선 메모리 영역을 건드리는 문제입니다. 이로 인해 시스템이 멈추거나 해커가 악성 코드를 실행할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cifs: Fix buffer overflow when parsing NFS reparse points
ReparseDataLength is sum of the InodeType size and DataBuffer size.
So to get DataBuffer size it is needed to subtract InodeType's size from
ReparseDataLength.
Function cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer
at position after the end of the buffer because it does not subtract
InodeType size from the length. Fix this problem and correctly subtract
variable len.
Member InodeType is present only when reparse buffer is large enough. Check
for ReparseDataLength before accessing InodeType to prevent another invalid
memory access.
Major and minor rdev values are present also only when reparse buffer is
large enough. Check for reparse buffer size before calling reparse_mkdev().
📍 영향받는 시스템
NFS reparse points를 사용하는 리눅스 커널 기반 시스템
⚔️ 공격 벡터
조작된 NFS 재파싱 포인트를 포함한 네트워크 데이터 전송을 통한 메모리 오버플로 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인