[단독방어] 분석 — CVE-2025-68803
CVE-2025-68803 allows an NFSv4 client to create files without the requested POSIX ACL, leading to privilege escalation; immediately disable NFSv4 ACL handling on affected exports as a stop‑gap mitigation.
📋 요약
- 심각도 high · CVSS 8.0 · EPSS 0.00368 · 악용난이도 hard
🔍 공격 기법
NFSv4 클라이언트가 파일 생성 시 named principal을 포함한 POSIX ACL을 지정해 RPC SETATTR 요청을 보내면, nfsd 내부에서 nfsd_attrs_valid() 가 ACL 변화를 인식하지 못하고 nfsd_setattr() 호출이 생략됩니다. 결과적으로 inode 에 ACL 이 적용되지 않아 서버는 파일 모드 비트 기반의 기본 ACL만 반환합니다. 공격자는 의도한 제한보다 넓은 접근 권한을 가진 파일을 얻어, 이후 해당 파일을 이용해 권한 상승 또는 무단 데이터 접근을 수행할 수 있습니다.
악용 가능성: 이 취약점은 네트워크 접근(AV:N)이 필요하므로 공격자는 NFSv4 서비스를 외부에서 직접 호출할 수 있어 원격 이용이 가능하지만, 사용자 상호작용(UI:R)이 요구됩니다. 즉, 공격자는 파일 생성 요청 시 ACL을 지정하는 정상적인 클라이언트 동작을 수행해야 하며, 이는 일반 사용자가 파일을 만들 때 자동으로 발생합니다. 권한 요구조건(PR:L)은 로컬 또는 인증된 NFSv4 사용자에게만 제한되므로, 공격자는 이미 유효한 NFS 계정을 보유하거나 인증 정보를 탈취한 상태여야 합니다. 공격 난이도(AC:L)는 “Low”로 평가되는데, 이는 ACL을 포함한 파일 생성 RPC를 조작하는 것이 비교적 간단하고, 추가적인 특수 권한 상승 단계가 필요 없기 때문입니다. EPSS 값 0.00368은 실제 악용 가능성이 낮지만 존재함을 의미하며, KEV에 등재되지 않은 점은 아직 광범위하게 관찰된 사례가 부족함을 보여줍니다. 노출된 공격 표면은 NFSv4 프로토콜의 CREATE 및 SETATTR RPC 엔드포인트이며, 특히 ACL 파라미터를 포함한 파일 생성 요청이 전송되는 경우에만 취약성이 발현됩니다.
💥 영향 분석
- 생성된 파일에 지정한 ACL이 적용되지 않아 실제 권한보다 높은 읽기/쓰기/실행 권한이 부여됨
- NFSv4 클라이언트가 의도하지 않은 권한을 가진 파일을 배포함으로써, 동일 네트워크 내 다른 사용자·서비스가 해당 파일에 접근 가능해짐
- 공격자는 이 파일을 악성 스크립트·바이너리 등으로 활용하여 시스템 권한 상승(특히 루트가 아닌 일반 사용자가 NFS 서버의 root‑squash 설정을 우회) 또는 데이터 유출 위험이 발생
🔗 관련 취약점·체이닝
- 동일 계열의 POSIX ACL 적용 오류(CWE‑??)와 결합하면, 파일 소유자 변경(Chown) 후 권한 재설정 공격으로 이어질 수 있음
- NFSv4 EXPORT 옵션(
fsid,no_root_squash)과 조합 시, 권한 상승 경로가 단축될 가능성이 존재함
🔎 탐지
-
로그 지표
auditd의setxattr이벤트:objtype=PATH,name="system.posix_acl_access"혹은"system.posix_acl_default"가 기록된 경우 추적rpc.nfsd로그(레벨 debug 이상)에서SETATTRRPC 호출 시acl=필드가 존재하지만 이후ACL applied메시지가 누락되는 패턴syslog/journalctl -u nfs-server에서nfsd_create_setattr함수 진입 로그와nfsd_attrs_valid: false경고(패치 전 커널에선 디버그 옵션이 켜진 경우)
-
SIEM 탐지 규칙 예시
- Auditd 기반 쿼리 (Splunk/Elastic)
1index=linux audit 2event.type="SETXATTR" 3object.path="/export/*" 4attr.name IN ("system.posix_acl_access","system.posix_acl_default") 5| stats count by host, user, object.path, _time 6| where count > 0 1 *오탐 튜닝*: 일반 백업·복구 작업에서 ACL을 일괄 적용하는 경우 `proc.name="rsync"` 혹은 `proc.cmdline="*backup*"` 로 필터링 2. NFS 로그 기반 정규식 (Logstash/Graylog)
1^.*nfsd_create_setattr\(\).*attrs_valid=0.*$ 1 *오탐 튜닝*: `debug` 레벨이 아닌 운영 환경에서는 해당 로그가 거의 발생하지 않으므로, 레벨 INFO 이상만 수집 3. Syscall 추적 (Falco)
1syscall=setxattr and evt.dir=< and fd.name startswith "/export/" and arg2 in ("system.posix_acl_access","system.posix_acl_default") 1 *오탐 튜닝*: `proc.name`이 `systemd-tmpfiles`, `restorecon` 등 시스템 초기화 스크립트인 경우 제외 - 검증 방법
- 위 규칙을 적용한 후, 테스트 클라이언트에서 ACL 포함 파일 생성 시 알림 발생 여부 확인
- 정상적인 백업·복구 시나리오와 비교해 false positive 비율을 측정하고,
proc.name/cmdline필터를 조정
🛡️ 완화 방안
-
즉시(긴급 차단)
- NFS export 옵션에
noacl를 추가하거나 전체 NFSv4 서비스에서 ACL 지원을 비활성화(sysctl -w fs.nfs.idmap_cache_timeout=0 && echo "options nfsd no_acl" > /etc/modprobe.d/nfsd.conf && modprobe -r nfsd && modprobe nfsd) - 구현 난이도: 낮음 (수분 내 적용 가능) → 운영 영향: ACL 기반 권한 제어가 필요한 워크로드는 일시적으로 기본 모드 비트 권한만 사용하게 됨, 가용성은 유지
- NFS export 옵션에
-
단기(완화)
-
ACL 검증 스크립트 배포 – NFS export 디렉터리 전체를 주기적으로
getfacl로 검사하고, 기대 ACL과 차이가 있으면 관리자에게 알림 (cron+diff)- 난이도: 중간 (스크립트 작성·배포) → 영향: 파일 시스템 I/O 증가(대상 디렉터리 규모에 따라) → 검증: 스크립트 실행 로그와 알림 확인
-
클라이언트 측 제한 – NFSv4 클라이언트에서
mount -o nfsvers=3로 강제 다운그레이드하거나,rpc.idmapd를 비활성화해 named principal 사용을 차단- 난이도: 낮음 → 영향: 일부 최신 기능(ACL, Kerberos) 상실 → 검증: 마운트 옵션 확인 (
mount | grep nfs)
- 난이도: 낮음 → 영향: 일부 최신 기능(ACL, Kerberos) 상실 → 검증: 마운트 옵션 확인 (
-
-
근본(해결)
- 해당 커널 패치를 포함하는 최신 Linux 배포판(예: kernel 6.8.x 이상)으로 업그레이드하고, NFS 서버 서비스를 재시작한다.
- 구현 난이도: 높음 (재부팅·패키지 의존성 검증 필요) → 운영 영향: 서비스 중단 시간 발생 가능 → 검증:
uname -r로 커널 버전 확인 후,nfsstat -c로 NFS 동작 정상 여부 점검
- 구현 난이도: 높음 (재부팅·패키지 의존성 검증 필요) → 운영 영향: 서비스 중단 시간 발생 가능 → 검증:
- 해당 커널 패치를 포함하는 최신 Linux 배포판(예: kernel 6.8.x 이상)으로 업그레이드하고, NFS 서버 서비스를 재시작한다.
-
잔여 리스크
- 패치 적용 전까지
noacl옵션으로 인한 권한 제어 약화가 남으며, ACL 기반 보안 정책을 사용하는 서비스는 별도 접근 제어(Linux Capabilities·SELinux)로 보완 필요.
- 패치 적용 전까지
-
인시던트 대응 플레이북
- 알림 수신 → 해당 호스트와 export 경로 확인
auditctl -l | grep setxattr로 현재 감시 설정 검증, 필요 시 즉시auditctl -a exit,always -F arch=b64 -S setxattr -F dir=/export/...추가getfacl /export/<path>로 실제 ACL 확인, 기대와 차이 있으면 즉시chmod·setfacl로 교정 후 로그 남김- 공격 가능성 판단 시 NFS 클라이언트 로그에서 비정상적인
SETATTR호출 패턴을 추가 분석하고, 필요 시 해당 클라이언트를 격리
위 조치를 순차적으로 적용하면 CVE-2025-68803 로 인한 권한 상승 위험을 최소화하면서 서비스 연속성을 유지할 수 있습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.0 · non-KEV · EPSS=0.00368 · exploit=hard · in_scope=None