[방어] 분석 — CVE-2025-38704
A null pointer dereference in the Linux kernel's RCU nocb mechanism can lead to system instability or privilege escalation, requiring immediate restriction of CPU hotplug operations for non-privileged users.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00155 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: CPU online/offline 과정에서 rdp's->nocb_cb_kthread 생성에 실패한 후, 해당 CPU를 다시 offload 및 re-offload 하는 과정에서 유효하지 않은 포인터(invalid pointer)에 접근할 때 발생합니다.
(2) 공격 단계:
- 정찰: 커널 버전 확인 및 CPU hotplug 제어 권한 확인.
- 초기접근: 로컬 시스템의 일반 사용자 계정 확보 (PR:L).
- 실행/권한 획득: 특정 조건에서 CPU online/offline 상태를 반복적으로 유도하여 kthread_unpark()가 잘못된 포인터를 참조하게 함 $\rightarrow$ 커널 패닉(DoS) 또는 추정: 메모리 오염을 통한 권한 상승 시도.
- 영향: 시스템 크래시 또는 커널 모드에서의 임의 코드 실행.
(3) 공격 표면: /sys/devices/system/cpu/cpuX/online 등 CPU hotplug 관련 커널 인터페이스.
(4) CVSS 벡터 연결: AV:L(로컬 접근 필요), AC:L(공격 복잡도 낮음), PR:L(낮은 수준의 권한 필요), UI:N(사용자 상호작용 불필요). 즉, 시스템에 로그인한 일반 사용자가 커널 인터페이스를 조작할 수 있는 환경이 전제됩니다.
악용 가능성: 본 취약점은 Linux kernel의 rcu/nocb 메커니즘 내에서 CPU online 과정 중 kthread 생성 실패 시 발생하는 Null Pointer Dereference로, 공격 난이도는 Hard로 판정됩니다. CVSS 벡터 AV:L/AC:L/PR:L/UI:N에 따라 공격자는 시스템에 대한 최소한의 권한(PR:L)을 가진 상태에서 로컬 환경(AV:L)에 접근해야 하며, 특정 CPU의 offload/re-offload 상태를 정밀하게 제어할 수 있어야 트리거가 가능합니다. 공격 표면은 커널 내부의 RCU(Read-Copy Update) kthread 관리 로직 및 CPU hotplug 관련 시스템 호출로 제한되어 외부 네트워크를 통한 직접적인 침투는 불가능합니다. EPSS 수치가 0.00155로 매우 낮고 KEV에 등재되지 않은 점은, 이론적인 커널 패닉 유발 가능성과 별개로 실제 야생(In-the-wild)에서 익스플로잇으로 악용된 사례가 거의 없음을 시사합니다. 결과적으로 본 취약점은 원격 실행보다는 로컬 권한을 가진 공격자가 시스템 가용성을 저해하는 DoS(Denial of Service) 목적으로 악용할 가능성이 높으나, 트리거 조건이 매우 까다로워 실제 악용 가능성은 낮습니다.
💥 영향 분석
(1) 기술적 위험: 유효하지 않은 포인터 접근으로 인한 Kernel Panic 및 시스템 중단(DoS), 또는 추정: 정교하게 설계된 페이로드를 통해 커널 권한 획득.
(2) 비즈니스 영향: 서버 가용성 상실로 인한 서비스 중단. 특히 다중 CPU를 동적으로 관리하는 클라우드/가상화 환경에서 인프라 안정성에 영향을 줄 수 있습니다.
🔗 관련 취약점·체이닝
- 추정:
Null Pointer Dereference$\rightarrow$Kernel Panic(DoS) 또는Privilege Escalation으로 이어지는 전형적인 커널 권한 상승 체인 패턴을 보입니다. - 추정: 다른 로컬 권한 상승(LPE) 취약점과 체이닝되어 샌드박스를 탈출하거나 최종 루트 권한을 획득하는 단계로 활용될 수 있습니다.
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/syslog, /var/log/kern.log 내의 커널 Oops 메시지, 특히 rcu/nocb 관련 함수 호출 스택에서 발생하는 null pointer dereference 패턴.
(2) 탐지 규칙 예시:
- SIEM 쿼리 (Pseudo-code):
SELECT timestamp, hostname, message FROM kernel_logs WHERE message LIKE '%rcu/nocb%' AND (message LIKE '%null pointer dereference%' OR message LIKE '%General protection fault%')
- EDR/Auditd 로직:
auditctl -a always,exit -F arch=b64 -S write -F path=/sys/devices/system/cpu/cpu*/online -k cpu_hotplug_monitor (특정 권한 없는 사용자의 CPU online 설정 시도 감시)
(3) 오탐 튜닝: 정상적인 시스템 관리 도구(예: lscpu, 하드웨어 관리 에이전트)에 의한 CPU 상태 변경은 화이트리스트 처리하여 노이즈를 제거합니다.
🛡️ 완화 방안
- 즉시 (긴급 차단): 일반 사용자의
/sys/devices/system/cpu/cpuX/online파일 접근 및 쓰기 권한을 엄격히 제한(chmod)하거나,kernel.cpu_hotplug관련 제어 인터페이스를 루트 권한으로만 한정합니다.- 난이도: 매우 낮음 / 운영 영향: 낮음 (관리자 외 사용 불가) / 검증: 일반 계정에서 CPU online/offline 시도 시
Permission denied확인 / 우선순위: 최우선.
- 난이도: 매우 낮음 / 운영 영향: 낮음 (관리자 외 사용 불가) / 검증: 일반 계정에서 CPU online/offline 시도 시
- 단기 (완화): 시스템 설정에서 불필요한 CPU hotplug 기능을 비활성화하여 공격 표면을 제거합니다.
- 난이도: 낮음 / 운영 영향: 중간 (동적 CPU 할당 기능 사용 불가) / 검증:
cat /sys/devices/system/cpu/cpuX/online상태 고정 확인 / 우선순위: 높음.
- 난이도: 낮음 / 운영 영향: 중간 (동적 CPU 할당 기능 사용 불가) / 검증:
- 근본 (해결): 영향받는 커널 버전(6.12.43 미만, 6.13
6.15.11, 6.166.16.2)을 최신 수정 버전으로 업데이트합니다.- 난이도: 중간 / 운영 영향: 중간 (재부팅 필요) / 검증:
uname -r로 패치 버전 확인 / 우선순위: 근본 해결.
- 난이도: 중간 / 운영 영향: 중간 (재부팅 필요) / 검증:
[분석 근거] 본 리포트는 다중 소스에서 데이터 일관성이 확인되었으며, EPSS 0.00155(백분위 0.0511)라는 실측값을 통해 현재 실제 악용 가능성은 매우 낮음(Hard 등급)을 확인했습니다. 이에 따라 CVSS 7.8의 높은 이론적 심각도에도 불구하고, KEV 미등재 및 낮은 EPSS 수치를 근거로 우선순위를 scheduled(이번 주 내)로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00155 · exploit=hard · in_scope=None