[공격] 분석 — CVE-2025-68803
The NFSv4 kernel bug (CVE-2025-68803) lets an authenticated client create files without the requested POSIX ACLs, enabling unauthorized access; patch the kernel or disable NFSv4 ACL handling immediately and audit existing inodes.
📋 요약
- 심각도 high · CVSS 8.0 · EPSS 0.00368 · 악용난이도 hard
🔍 공격 기법
-
공격 표면
- 프로토콜: NFSv4 (TCP/UDP 2049)
- 엔드포인트:
nfsd_create_setattr()호출 시 전달되는 CREATE RPC에 포함된ACLXATTR (system.nfs4_acl) - 파라미터: 파일명, mode bits, 명시적 principal을 담은 POSIX ACL
-
전제 조건
- 공격자는 NFSv4 서버에 정상 인증(일반 사용자 계정)으로 마운트된 클라이언트를 보유해야 함(PR:L).
- 파일 생성 명령을 실행할 수 있는 인터랙션이 필요함(UI:R).
- 서버가 ACL 적용을 비활성화하지 않은 상태여야 함(ACL 지원 활성).
-
단계
- 정찰 –
showmount -e,nfsstat -m등으로 NFS export와 버전(NFSv4) 확인; ACL 사용 여부는/proc/fs/nfsd/exports또는 export 옵션(no_acl)로 추정. - 초기 접근 – 인증된 계정으로 공유를 마운트하고
mkdir /mnt/share/exploit && setfacl -m u:attacker:rwx ./exploit와 같은 ACL 포함 CREATE 요청을 전송. - 실행·권한 획득 –
nfsd_attrs_valid()가 ACL만 존재하면 false를 반환해nfsd_setattr()이 호출되지 않음 → POSIX ACL가 inode에 적용되지 않고 기본 mode‑bit 기반 디폴트 ACL만 남음. 클라이언트는 GETATTR 결과에서 기대한 ACL이 없음을 확인하고, 실제 파일 권한이 과도하게 열려 있음을 이용해 읽기/쓰기/삭제를 수행. - 지속 – 생성된 파일은 정상적인 inode이며 재부팅·재마운트 후에도 그대로 존재하므로, 공격자는 해당 파일을 지속적인 접근 포인트로 활용하거나, 동일 디렉터리 내 다른 사용자의 파일에 대한 권한 탐색(예:
chmod없이도 쓰기 가능한 디렉터리)으로 권한 상승 사슬을 구축. - 영향 – 과다 권한 파일을 통해 민감 데이터 열람·변조·삭제가 가능하고, 로그 파일 등 핵심 서비스 파일을 손상시켜 가용성 저하를 초래함.
- 정찰 –
-
CVSS ↔ 실제 조건 매핑
- AV:N → 네트워크만으로 트리거 (NFS RPC).
- AC:L → 표준 CREATE 호출에 ACL 속성을 삽입하는 것만 필요, 복잡도 낮음.
- PR:L → 인증된 일반 사용자면 충분.
- UI:R → 클라이언트에서 파일 생성 명령을 실행해야 함.
-
추정: 기존에 생성된 파일 중 ACL 누락 객체가 존재할 경우, 추가적인 권한 상승 경로가 형성될 수 있음(패치 전후 감사 필요).
악용 가능성: 해당 취약점은 네트워크를 통해 NFSv4 서비스에 접근할 수 있는 경우(AV:N)라서 원격 공격이 가능하지만, 파일 생성 시 ACL을 지정하려면 정상적인 NFS 클라이언트 인증 정보가 필요하므로 최소 권한(Low privilege, PR:L)이 요구됩니다. 또한, 취약점 발현에는 클라이언트가 CREATE RPC 호출에 ACL 파라미터를 포함시켜야 하며, 이 과정에서 사용자가 직접 파일을 생성하거나 수정하는 행위(UI:R)가 선행되어야 하므로 공격 단계가 비교적 복잡합니다. EPSS 0.00368이라는 매우 낮은 실측 확률과 KEV 미등재는 현재까지 실제 악용 사례가 거의 없음을 의미하지만, 이는 공격 난이도가 높은 것이 아니라 노출 조건 자체가 제한적임을 보여줍니다. 공격 표면은 NFSv4 서버의 nfsd_create_setattr 함수가 호출되는 파일 생성 RPC와, ACL 값을 전달하는 attributes 구조체(특히 named principal)입니다. 공격자는 먼저 NFS 공유에 마운트하고 인증된 세션을 확보한 뒤, 의도적으로 잘못된 ACL를 포함한 CREATE 요청을 전송해 서버가 ACL 적용을 누락하도록 유도할 수 있습니다. 이때 성공하면 파일의 실제 권한이 기본 모드 비트에만 제한되므로, 이후 동일 공유에 접근 가능한 다른 사용자가 기대하지 않은 권한으로 파일을 열어 정보 유출이나 무단 수정이 가능하게 됩니다. 따라서 공격 난이도는 “Hard”로 평가되며, 실질적인 악용은 인증된 NFS 클라이언트와 ACL 파라미터를 조작할 수 있는 환경이 전제되어야 합니다.
💥 영향 분석
- 기밀성 – 의도된 제한적 읽기 권한이 적용되지 않아 공격자는 보호되어야 할 파일을 무단 열람.
- 무결성 – 쓰기·삭제 권한이 과다 부여돼 파일 내용 변조·삭제가 가능.
- 가용성 – 핵심 로그·구성 파일을 삭제하거나 덮어써 서비스 중단을 유발할 수 있음.
🔗 관련 취약점·체이닝
- 유형/패턴: POSIX ACL 적용 누락 → 권한 부여 오류 → 권한 상승 (Privilege Escalation).
- 가능한 체인
- CWE‑276 (Incorrect Default Permissions)와 결합해 초기 파일 생성 시 과도하게 관대한 mode bits를 이용, 이후
chmod·setfacl등으로 권한을 확대. - 동일 NFS 서버에 존재하는 인증 우회 취약점(예: NFS export 인증 bypass)과 연계하면 비인증 사용자가 먼저 접근해 ACL 누락 파일을 만든 뒤, 해당 파일을 통해 내부 시스템에 침투 가능.
- CWE‑276 (Incorrect Default Permissions)와 결합해 초기 파일 생성 시 과도하게 관대한 mode bits를 이용, 이후
- 추정: 현재 공개된 다른 CVE와 직접적인 번호 매칭은 확인되지 않았으나, “ACL 적용 실패 → 권한 상승” 패턴은 여러 스토리지·파일시스템 결함에서 반복됨.
🔎 탐지
- 커널 로그에
nfsd_create_setattr: attrs_valid=0와 함께acl=필드가 포함된 메시지가 기록될 경우 경고. - auditd 규칙 예시:
auditctl -a always,exit -F arch=b64 -S setxattr -F key=nfs_acl_miss→ ACL XATTR 설정 시도 후 적용되지 않은 경우 추적. - 네트워크 레벨: tcpdump/wireshark로 포트 2049 트래픽 캡처 시 CREATE RPC에
ACLattribute가 포함되었음에도 GETATTR 응답에서 기본 mode‑bit 기반 ACL만 반환되는 패턴을 탐지.
🛡️ 완화 방안
- 즉시
- CVE-2025-68803이 적용된 커널 패치를 배포하고 시스템 재부팅.
- NFSv4 마운트 옵션에
noacl지정하거나/etc/exports에서 해당 export에 대해 ACL 지원을 비활성화(fsid=0,no_subtree_check,no_acl).
- 패치 전후
- 기존 파일 시스템을 스캔해 “ACL 누락” inode를 식별(
find /mnt/share -type f ! -exec getfacl {} \; -print)하고, 필요 시setfacl로 올바른 ACL 재설정.
- 기존 파일 시스템을 스캔해 “ACL 누락” inode를 식별(
- 보조 조치
- NFS 서버 로그·auditd 규칙을 활성화해 신규 CREATE 요청 시 ACL 적용 여부를 지속적으로 모니터링.
- 서비스 외부 노출이 불필요한 경우 방화벽으로 NFS 포트(2049) 차단 또는 내부 전용 VLAN에 제한.
다중 소스에서 일관성이 확인됐으며(교차검증), EPSS 0.00368은 실제 악용 가능성을 낮게 평가하지만 CVSS 8.0·high 심각도와 결합해 이번 주 내 조치(scheduled) 필요함을 뒷받침합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.0 · non-KEV · EPSS=0.00368 · exploit=hard · in_scope=None