🔍 CVE-2022-48827

7.5
CVSS Score
HIGH
2024-07-16
2026-10-14 19:16
✅ 완료

🇰🇷 한글 설명

리눅스 커널의 NFSD에서 OFFSET_MAX 근처의 READ 요청을 처리할 때 loff_t 오버플로우가 발생하는 취약점입니다. 클라이언트가 정렬된 버퍼를 요청할 때 서버에서 오버플로우가 발생하여 EINVAL 오류를 반환하며, 이로 인해 클라이언트가 요청을 무한히 재시도하는 문제가 발생합니다.

💡 쉬운 설명

파일의 끝부분을 읽으려고 할 때 계산 오류가 발생하여 서버와 클라이언트가 서로 잘못된 응답을 주고받는 문제입니다. 이로 인해 컴퓨터가 멈추지 않고 계속해서 같은 작업을 반복하느라 시스템 자원을 낭비하게 됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: NFSD: Fix the behavior of READ near OFFSET_MAX Dan Aloni reports: > Due to commit 8cfb9015280d ("NFS: Always provide aligned buffers to > the RPC read layers") on the client, a read of 0xfff is aligned up > to server rsize of 0x1000. > > As a result, in a test where the server has a file of size > 0x7fffffffffffffff, and the client tries to read from the offset > 0x7ffffffffffff000, the read causes loff_t overflow in the server > and it returns an NFS code of EINVAL to the client. The client as > a result indefinitely retries the request. The Linux NFS client does not handle NFS?ERR_INVAL, even though all NFS specifications permit servers to return that status code for a READ. Instead of NFS?ERR_INVAL, have out-of-range READ requests succeed and return a short result. Set the EOF flag in the result to prevent the client from retrying the READ request. This behavior appears to be consistent with Solaris NFS servers. Note that NFSv3 and NFSv4 use u64 offset values on the wire. These must be converted to loff_t internally before use -- an implicit type cast is not adequate for this purpose. Otherwise VFS checks against sb->s_maxbytes do not work properly.

📍 영향받는 시스템

Linux kernel (NFS server/client components)

⚔️ 공격 벡터

특정 오프셋(OFFSET_MAX 근처)을 대상으로 하는 악의적인 또는 잘못된 NFS READ 요청

🛡️ 대응 방법

리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel