🇰🇷 한글 설명
Linux 커널의 nfsd 구성 요소에서 nfsd_set_fh_dentry() 함수 호출 시 참조 횟수(refcount) 누수가 발생하는 취약점입니다. NFSv3 클라이언트가 잘못된 파일 핸들을 생성하여 요청할 경우, 참조 횟수가 잘못 관리되어 Use-After-Free 및 서비스 거부(DoS) 상태를 유발할 수 있습니다.
💡 쉬운 설명
NFS 서버가 파일을 관리할 때 사용하는 '참조 횟수' 계산에 오류가 있어, 시스템이 잘못된 정보를 처리하다가 멈추거나 충돌할 수 있는 문제입니다. 공격자가 특수한 가짜 요청을 보내면 서버의 안정성을 해칠 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix refcount leak in nfsd_set_fh_dentry()
nfsd exports a "pseudo root filesystem" which is used by NFSv4 to find
the various exported filesystems using LOOKUP requests from a known root
filehandle. NFSv3 uses the MOUNT protocol to find those exported
filesystems and so is not given access to the pseudo root filesystem.
If a v3 (or v2) client uses a filehandle from that filesystem,
nfsd_set_fh_dentry() will report an error, but still stores the export
in "struct svc_fh" even though it also drops the reference (exp_put()).
This means that when fh_put() is called an extra reference will be dropped
which can lead to use-after-free and possible denial of service.
Normal NFS usage will not provide a pseudo-root filehandle to a v3
client. This bug can only be triggered by the client synthesising an
incorrect filehandle.
To fix this we move the assignments to the svc_fh later, after all
possible error cases have been detected.
📍 영향받는 시스템
Linux Kernel (nfsd 모듈을 사용하는 시스템)
⚔️ 공격 벡터
NFSv3 클라이언트가 조작된(synthesized) 잘못된 파일 핸들을 사용하여 NFS 서버에 요청을 보내는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.