🇰🇷 한글 설명
Linux 커널의 nfsd 모듈에서 ACL 처리 중 오류를 무시하거나 메모리를 해제하지 않는 취약점이 발견되었습니다. ACL 변환 실패 시 오류를 반환하지 않고 파일을 생성하거나, 특정 조건에서 메모리 누수가 발생하여 시스템 자원을 고갈시킬 수 있습니다.
💡 쉬운 설명
파일의 권한을 설정하는 과정에서 오류가 발생해도 이를 무시하고 파일을 만들어버리거나, 컴퓨터의 메모리를 계속 잡아먹는 버그가 있습니다. 공격자가 이를 반복하면 시스템이 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
nfsd: fix posix_acl leak and ignored error in nfsd4_create_file
nfsd4_create_file() has two bugs in its ACL handling:
The return value of nfsd4_acl_to_attr() is silently discarded. When
the NFSv4-to-POSIX ACL conversion fails (e.g., -EINVAL for
unsupported ACE types), the file is created without any ACL and the
client receives NFS4_OK. This violates RFC 7530/8881 which require
the server to reject unsupported attributes on CREATE.
When start_creating() fails after ACL attributes have been populated
in attrs (either via nfsd4_acl_to_attr or via ownership transfer from
open->op_dpacl/op_pacl), the function jumps to out_write which skips
nfsd_attrs_free(). The posix_acl allocations are leaked. A client
can trigger this repeatedly with OPEN(CREATE), ACL attributes, and an
invalid filename (e.g., longer than NAME_MAX).
Fix both by capturing the nfsd4_acl_to_attr() return value and by
changing the early error paths to jump to out instead of out_write.
Initialize child to ERR_PTR(-EINVAL) so that end_creating() is safe
to call even if start_creating() was never reached.
📍 영향받는 시스템
Linux kernel (nfsd module 포함 버전)
⚔️ 공격 벡터
NFSv4 클라이언트가 잘못된 ACL 속성이나 너무 긴 파일명을 포함한 OPEN(CREATE) 요청을 반복적으로 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인