Kestrel
CVE-2025-71079DGX_2· 2026년 7월 30일 AM 12:19

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

A local deadlock in the Linux kernel NFC subsystem allows a low-privileged user to trigger a system hang via lock inversion, requiring monitoring and patching of affected kernels.

📋 요약

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

🔍 공격 기법

본 취약점은 device_lockrfkill_global_mutex 사이의 획득 순서가 뒤바뀐 전형적인 ABBA Deadlock이다. 공격자는 시스템에 접근 가능한 Local User 권한만으로 커널 패닉(System Hang)을 유도하여 가용성을 파괴할 수 있다.

  • 공격 표면 및 트리거:
    • 대상 함수: nfc_unregister_device()rfkill_fop_write().
    • 트리거 조건: NFC 장치의 등록 해제 과정과 RF-Kill(무선 기능 켜기/끄기) 설정 변경 요청이 거의 동시에 서로 다른 스레드에서 발생해야 한다.
  • 공격 체인 및 전제 조건:
    1. 초기 접근: AV:L / PR:L 조건에 따라, 공격자는 이미 시스템에 로그인한 저권한 사용자여야 한다.
    2. 정찰: /sys/class/rfkill 등을 통해 NFC 장치의 존재 및 제어 가능 여부를 확인한다.
    3. 실행 (Race Condition 유도):
      • Thread A: rfkill_fop_write() 호출 $\rightarrow$ rfkill_global_mutex 획득 $\rightarrow$ nfc_dev_down() 진입 $\rightarrow$ device_lock 요청 (대기).
      • Thread B: nfc_unregister_device() 호출 $\rightarrow$ device_lock 획득 $\rightarrow$ rfkill_unregister() 진입 $\rightarrow$ rfkill_global_mutex 요청 (대기).
    4. 결과: 두 스레드가 서로 상대방이 가진 락을 무한히 기다리는 Deadlock 상태에 빠지며, 커널의 주요 실행 경로가 차단되어 시스템이 응답하지 않는 상태(Hang)가 된다.
  • 공격 난이도 분석: AC:L이지만 실제 성공을 위해서는 정밀한 타이밍 제어가 필요하므로 실측 악용 등급은 hard로 평가된다.

악용 가능성: 본 취약점은 Linux 커널의 NFC 서브시스템 내 device_lockrfkill_global_mutex 간의 Lock Ordering Inversion으로 발생하는 Deadlock 결함입니다. AV:L 및 PR:L 벡터가 가리키듯, 공격자는 대상 시스템에 이미 로그인된 로컬 권한을 보유해야 하며 커널 모드에서 NFC 장치의 등록 해제(nfc_unregister_device)와 RF-Kill 상태 변경(rfkill_fop_write)이라는 두 가지 서로 다른 실행 경로를 동시에 트리거해야 합니다. EPSS 수치가 0.00089로 매우 낮고 KEV에 등재되지 않은 이유는, 특정 하드웨어 구성과 정밀한 타이밍(Race Condition)이 일치해야 하는 조건상 원격에서 자동화된 공격으로 악용하기 어렵기 때문입니다. 공격 표면은 /dev/rfkill 인터페이스나 NFC 장치의 Hot-plug/Unplug 이벤트와 관련된 커널 함수 호출 지점으로 제한됩니다. 결과적으로 이론적인 심각도보다는 특정 환경의 가용성을 저해하는 DoS(Denial of Service) 가능성이 핵심이며, 일반적인 외부 공격 경로보다는 로컬 권한 상승 과정에서 시스템을 마비시키기 위한 보조 수단으로 활용될 난이도가 높은 취약점입니다.

💥 영향 분석

  • 가용성 파괴 (DoS): 커널 레벨의 Deadlock으로 인해 시스템 전체가 멈추거나, 특정 서브시스템이 완전히 마비되어 재부팅 전까지 복구가 불가능하다.
  • 권한 상승 불가: 본 취약점은 메모리 오염이나 실행 흐름 제어가 아닌 '잠금 상태'의 문제이므로, 단독으로는 권한 상승(LPE)이나 데이터 유출을 일으키지 않는다.

🔗 관련 취약점·체이닝

  • 체이닝 경로 (추정): 본 결함은 단독으로 DoS를 일으키지만, 다른 커널 취약점과 조합될 때 공격 효율을 높일 수 있다.
    • Race Condition 유도 $\rightarrow$ 타임아웃 기반 우회: 특정 보안 모듈이나 감시 프로세스가 Deadlock으로 인해 응답하지 않는 틈을 타, 시간 제한(Timeout)이 걸린 다른 취약점을 공격하는 윈도우를 확보하는 용도로 사용될 수 있다.
    • DoS $\rightarrow$ Fail-open 유도 (추정): 시스템 장애 시 보안 설정이 기본값으로 초기화되거나 'Fail-open' 상태가 되는 하드웨어/소프트웨어 구성이 있다면, 이를 통해 권한 없는 접근을 시도하는 체이닝이 가능하다.
  • 유형 패턴: Lock Order Inversion (CWE-362) 계열의 결함으로, 복잡한 커널 서브시스템 간 상호작용에서 빈번히 발생하는 패턴이다.

🔎 탐지

  • 커널 로그 분석: Deadlock 발생 시 rcu_sched 또는 softlockup 관련 커널 덤프(Kernel Panic/Oops) 메시지가 생성되는지 확인한다.
  • 시스템 상태 모니터링: NFC 관련 장치 제어(rfkill)와 장치 제거 작업이 빈번하게 일어나는 환경에서 CPU 사용량이 급증하며 시스템 응답성이 사라지는 패턴을 감시한다.

🛡️ 완화 방안

  • 근본 해결: 영향받는 커널 버전(4.4.293 ~ 6.1.160 범위 내 해당 버전)을 최신 패치 버전으로 업데이트하여 rfkill_unregister() 호출 위치를 device_lock 임계 구역 외부로 이동시킨다.
  • 즉시 조치: 불필요한 NFC 하드웨어 모듈을 언로드(modprobe -r)하거나, 저권한 사용자의 RF-Kill 제어 권한을 제한하여 공격 표면을 제거한다.

[분석 근거] 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS(0.00089) 수치가 매우 낮고 KEV에 등재되지 않은 점, 그리고 AV:L/PR:L의 제약 조건을 근거로 우선순위를 monitor 및 악용 난이도를 hard로 결정하였다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…