🔍 CVE-2026-74315

9.8
CVSS Score
CRITICAL
2026-08-15
2026-08-17 06:19
✅ 완료

🇰🇷 한글 설명

Linux 커널의 lockd 구성 요소에서 nlm4svc_lookup_file() 함수가 초기화되지 않은 바이트를 해싱하는 취약점이 발견되었습니다. NLMv4 클라이언트가 특정 크기보다 짧은 파일 핸들을 전달할 경우, 이전 요청의 잔류 데이터가 해시 계산에 포함되어 파일 핸들 조회 및 잠금 상태 확인에 실패할 수 있습니다.

💡 쉬운 설명

파일을 식별하는 번호표를 만들 때, 이전에 사용했던 쓰레기 데이터가 섞여 들어가는 문제입니다. 이로 인해 시스템이 동일한 파일 번호표를 보고도 서로 다른 파일로 오해하여 파일 잠금 기능이 제대로 작동하지 않을 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: lockd: Avoid hashing uninitialized bytes in nlm4svc_lookup_file() file_hash() digests the first LOCKD_FH_HASH_SIZE bytes of nfs_fh.data when bucketing nlm_files[], independent of fh.size. Commit 3de744ee4e45 ("lockd: Use xdrgen XDR functions for the NLMv4 TEST procedure") set .pc_argzero to zero for the converted procedures and moved file-handle population into nlm4svc_lookup_file(), which copies only xdr_lock->fh.len bytes into lock->fh.data. When an NLMv4 client presents a file handle shorter than LOCKD_FH_HASH_SIZE, bytes fh.len..31 retain whatever the argument buffer held from an earlier request. The same wire handle then hashes to different buckets across calls; nlm_lookup_file() misses the existing nlm_file entry, and lock-state lookups fail. Zero only the tail bytes that file_hash() would otherwise consume. Handles of LOCKD_FH_HASH_SIZE or larger already populate every byte that file_hash() reads.

📍 영향받는 시스템

Linux Kernel (lockd 구성 요소가 포함된 버전)

⚔️ 공격 벡터

조작된 짧은 길이의 NLMv4 파일 핸들을 전송하여 해시 충돌 또는 조회 실패 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

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

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel