Kestrel
CVE-2025-21795DGX_2· 2026년 7월 29일 AM 12:52

[공격] 분석 — CVE-2025-21795

A denial-of-service vulnerability in the Linux kernel's NFSD causes a hang during shutdown callbacks when a client is in a courtesy state; updating to a patched kernel version is the primary remediation.

📋 요약

  • 심각도 medium · CVSS 5.5 · EPSS 0.0023 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: nfs4_client가 'courtesy state'(클라이언트와 서버 간의 연결이 불안정하거나 종료 단계에 진입한 상태)일 때, nfsd4_shutdown_callback 함수가 호출되면 발생함. 이때 cl_cb_inflight 값이 0이 아니게 되어 RPC 콜백 전송 과정에서 프로세스가 중단(Hang)됨.

(2) 공격 단계:

  • 정찰: 대상 서버가 NFSv4를 활성화하고 있으며, 취약한 커널 버전(5.10.220~6.13.4 등)을 사용하는지 확인.
  • 초기 접근: NFS 클라이언트 권한을 가진 계정으로 네트워크 접근 확보 (AV:L/PR:L 조건).
  • 실행: 특정 시나리오를 통해 nfs4_client를 courtesy state로 유도한 후, 서버의 shutdown callback 메커니즘을 트리거함.
  • 영향: NFSD 프로세스가 약 15분간(TCP 타임아웃 발생 시까지) 응답하지 않는 서비스 거부 상태에 빠짐.

(3) 공격 표면:

  • 프로토콜: NFSv4 (Network File System version 4).
  • 함수/엔드포인트: nfsd4_shutdown_callback, nfsd4_run_cb_work.
  • 파라미터: 클라이언트의 상태 값(courtesy state 여부) 및 RPC 콜백 플래그.

(4) CVSS 벡터 분석:

  • AV:L (Local): 네트워크 상의 원격 공격보다는 이미 인증된 클라이언트나 로컬 접근 권한이 전제됨.
  • AC:L (Low): 트리거 조건만 충족되면 복잡한 우회 기법 없이 발생함.
  • PR:L (Low): 일반 사용자 수준의 권한으로도 NFS 클라이언트 요청을 통해 유발 가능함.
  • UI:N (None): 사용자 상호작용 불필요.

악용 가능성: 본 취약점은 AV:LPR:L 조건으로 인해 이미 시스템에 낮은 권한의 계정을 확보한 공격자가 내부에서 트리거해야 하므로 공격 난이도는 Hard로 평가됩니다. 공격 표면은 Linux 커널의 NFS 서버(nfsd) 내 nfsd4_shutdown_callback 함수이며, 특정 상태의 nfs4_client를 대상으로 하는 RPC 콜백 메커니즘이 트리거 지점이 됩니다. 특히 courtesy state인 클라이언트에 대해 콜백을 전송하려 할 때 발생하는 cl_cb_inflight 변수의 락(lock) 상태가 시스템 행(Hang)을 유발하는 핵심 원리입니다. EPSS 수치가 0.0023으로 매우 낮고 KEV에 등재되지 않은 점은, 이 결함이 즉각적인 원격 코드 실행(RCE)보다는 특정 조건에서의 서비스 거부(DoS) 성격이 강해 실전 악용 사례가 드물음을 시사합니다. 하지만 공격자가 이미 내부 진입에 성공한 상태라면, NFS 연결 상태를 조작하여 커널 스레드를 15분간 정지시키는 방식으로 가용성을 저하시키는 국소적 DoS 공격이 가능합니다. 결과적으로 이론적 심각도보다는 특정 환경의 NFS 설정과 권한 획득 여부에 따라 악용 가능성이 결정되는 취약점입니다.

💥 영향 분석

(1) 기술적 위험: 서비스 거부(DoS). NFSD 프로세스의 행(Hang)으로 인해 해당 서버를 NFS 스토리지로 사용하는 모든 클라이언트의 I/O 요청이 지연되거나 중단됨.
(2) 비즈니스 영향: 가용성 침해. 공유 스토리지를 사용하는 인프라 전체의 서비스 장애로 이어질 수 있으며, 특히 커널 수준의 행으로 인해 관리자의 강제 재부팅 전까지 서비스 복구가 어려울 수 있음.

🔗 관련 취약점·체이닝

  • 추정: 단일 취약점만으로는 권한 상승이나 데이터 유출이 불가능함.
  • 체이닝 경로: [인증 우회/권한 탈취] $\rightarrow$ [NFS 클라이언트 접근 확보] $\rightarrow$ [CVE-2025-21795 트리거] $\rightarrow$ [시스템 가용성 파괴].
  • 추정: 커널 내 다른 Race Condition이나 Memory Corruption 취약점과 결합하여, NFSD가 행 상태일 때 발생하는 타임아웃 처리 과정의 불안정한 메모리 상태를 이용한 추가 공격으로 이어질 가능성이 있음.

🔎 탐지

(1) 로그 지표:

  • dmesg 또는 /var/log/syslog에서 NFS 관련 RPC 타임아웃 및 TCP connection dropped 메시지 확인.
  • 커널 스택 트레이스에서 nfsd4_shutdown_callback 함수에 머물러 있는 프로세스 확인.

(2) 탐지 규칙:

  • 로직 1 (프로세스 상태): ps -ef 또는 top에서 NFSD 관련 워커 스레드가 장시간 'D' state(Uninterruptible sleep)로 유지되는지 감시.
  • 로직 2 (네트워크 패턴): NFSv4 콜백 포트에서 비정상적으로 긴 세션 유지 및 이후 대량의 TCP RST/FIN 패킷 발생 감지.
  • 로직 3 (로그 패턴): grep -E "nfsd|callback.*timeout" /var/log/messages

(3) 오탐 시나리오: 실제 네트워크 불안정으로 인한 단순 연결 끊김과 구분이 어려움. 단, 특정 클라이언트의 접속 시도 직후 일관되게 NFSD 행이 발생하는 패턴을 분석하여 튜닝 필요.

🛡️ 완화 방안

  • 즉시(긴급 차단): 불필요한 NFSv4 서비스 비활성화 또는 신뢰할 수 있는 IP 대역으로만 NFS 접근 제한(ACL 설정). (난이도: 하 / 영향: 낮음 / 검증: nfsstat 확인)
  • 단기(완화): TCP Keepalive 설정을 조정하여 15분이라는 긴 행 시간을 단축시킴으로써 서비스 복구 속도를 높임. (난이도: 중 / 영향: 네트워크 트래픽 소폭 증가 / 검증: sysctl 설정 확인)
  • 근본(해결): 패치된 커널 버전으로 업데이트.
    • 대상: Linux kernel 6.13.5+, 6.12.17+, 6.6.80+ 등 각 브랜치의 최신 수정 버전 적용. (난이도: 중 / 영향: 재부팅 필요로 인한 일시적 서비스 중단 / 검증: uname -r 확인)

[파이프라인 근거]: 본 분석은 다중 소스에서 데이터 일관성이 확인된 결과를 바탕으로 작성되었습니다. EPSS 0.0023 및 백분위 0.13998의 낮은 실측값과 AV:L/PR:L 조건을 고려하여, 실제 악용 난이도가 'hard'로 판단되어 우선순위를 'monitor'로 결정하였습니다.

⚖️ 위험도 / 우선순위

  • 조치: monitor (모니터링)
  • 근거: CVSS=5.5 · non-KEV · EPSS=0.0023 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…