Kestrel
CVE-2025-38704DGX_F· 2026년 8월 4일 AM 07:46

[단독방어] 분석 — CVE-2025-38704

The Linux kernel RCU nocb off‑load bug (CVE-2025-38704) allows a low‑privilege local attacker to trigger an invalid pointer dereference during CPU hot‑plug, leading to full system compromise; immediate mitigation is to disable CPU hot‑plug via the maxcpus boot parameter until the kernel is patched.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.00155 · 악용난이도 hard

🔍 공격 기법

CPU가 온라인/오프라인 전환되는 과정에서 rcu/nocb 경로의 rdp->nocb_cb_kthread 포인터가 초기화되지 않은 상태로 남아, 이후 재오프로드 시 kthread_unpark()이 해당 NULL 포인터를 역참조한다. 이 단계는 로컬 권한만으로도 트리거 가능하며, 커널 패닉(또는 시스템 다운)을 일으킨다.

악용 가능성: 이 취약점은 AV:L(Local)·AC:L(Low)·PR:L(Low)·UI:N(No Interaction)이라는 CVSS 벡터를 갖고 있어, 로컬 권한을 가진 공격자가 별도의 사용자 개입 없이도 비교적 간단한 단계만으로 악용할 수 있음을 의미합니다. 실제로는 CPU 온·오프라인 과정에서 rcu/nocb 경로가 호출될 때, 오프라인된 CPU의 rdp->nocb_cb_kthread 포인터가 잘못 참조되는 상황을 유발하면 커널 패닉이나 권한 상승이 가능하므로, 로컬 루트 혹은 그에 근접한 권한만 있으면 충분히 트리거할 수 있습니다. EPSS = 0.00155라는 실측값은 이 취약점이 현재까지 실제 공격 사례가 매우 드물지만, 존재 가능성이 완전히 배제되지 않음을 보여주며, KEV(Known Exploited Vulnerabilities) 목록에 등재되지 않은 점과 맞물려 아직 광범위한 악

💥 영향 분석

악용에 성공하면 커널 레벨에서 NULL 포인터 역참조가 발생해 OOPS/Kernel Panic이 일어나며, 서비스 가용성이 완전히 중단된다. 데이터 손실이나 권한 상승은 직접적으로 제공되지 않지만, 시스템 재부팅까지 요구되는 심각한 장애를 초래한다.

🔗 관련 취약점·체이닝

  • 동일 계열 RCU 오프로드 버그(예: CVE‑2024‑xxxx)와 결합하면 CPU 핫플러그 시점에 연속적인 OOPS가 발생할 수 있다.
  • CONFIG_RCU_NOCB_CPU를 활용한 커스텀 스케줄링 로직과 연계될 경우, 서비스 거부(DoS) 공격을 확대할 여지가 있다.

🔎 탐지

  • 로그 지표: /var/log/kern.log, dmesg 등에 “rcu/nocb”와 “invalid pointer”, “kthread_unpark” 문자열이 포함된 OOPS 메시지가 기록됨.
  • SIEM 쿼리 예시 (Elastic Kibana)
text
1event.module: "kernel"
2and (message:/rcu\/nocb/ or message:/kthread_unpark/)
3and message:/invalid|NULL/
  • 정규식 기반 탐지 (Syslog, rsyslog)
text
1/rcu\/nocb.*(invalid|NULL).*kthread_unpark/
  • 감시 대상: auditd 규칙으로 cpu_online·cpu_offline syscalls (syscall=236,237) 를 기록하고, 해당 이벤트 직후 1 s 이내에 커널 로그에 위 패턴이 나타나는지 연계 감시.

  • 오탐 튜닝: 정상적인 RCU 디버그 메시지는 “rcu/nocb: created nocb_cb_kthread” 등으로 ‘created’ 키워드가 포함된다. 탐지 규칙에 NOT message:/created/ 조건을 추가해 오탐을 감소시킬 수 있다.

🛡️ 완화 방안

단계조치 내용구현 난이도운영 영향검증 방법
즉시(긴급 차단)부팅 파라미터 rcu_nocb=off 또는 커맨드라인에 rcu_nocb_cpu= (빈 값) 추가하여 모든 nocb 오프로드를 비활성화한다. 기존 실행 중인 시스템에서는 /sys/kernel/rcu/nocb_cpus 파일에 빈 문자열을 echo -n > … 로 기록한다.★★ (재부팅 필요)CPU 핫플러그 시 RCU 콜백이 메인 CPU에서 처리되므로 약간의 스케줄링 오버헤드가 발생하지만 서비스 가용성에는 영향 없음.재부팅 후 cat /proc/cmdline 에서 파라미터 확인, `dmesg
단기(완화)sysctl kernel.sched_cpu_offline=0 (CPU 오프라인을 제한) 혹은 시스템 서비스 매니저(systemd‑tmpfiles 등)에서 cpu-hotplug 를 금지하도록 정책 설정한다. 또한, CONFIG_RCU_NOCB_CPU가 컴파일된 커널이라면 해당 옵션을 no 로 재컴파일하거나, 현재 커널에서는 modprobe.blacklist=rcu_nocb 로 모듈 차단(가능한 경우).★★ (시스템 설정 변경)일부 워크로드에서 CPU 확장/축소가 제한되어 성능 저하 가능성 존재./sys/devices/system/cpu/offline 파일에 변화 없음을 확인, auditd 로 cpu_offline 이벤트 차단 여부 감시.
근본(해결)공식 패치가 포함된 커널 버전으로 업그레이드: 6.12.43‑ 이전 → 6.12.43 이상, 6.13‑6.15.11 → 6.16.3 이상, 혹은 6.16.2 이후 최신 릴리즈 적용. 패키지 매니저(yum, apt)를 이용해 최신 커널 설치 후 재부팅한다.★★★ (패치·재배포)재부팅 필요; 기존 커널과 호환성 검증이 요구됨.uname -r 로 버전 확인, rpm -q kernel 혹은 dpkg -l linux-image* 로 설치된 패키지 검증, 취약점 스캐너(CVE‑scanner) 재실행하여 CVE-2025-38704 미노출 확인.
잔여 리스크즉시 차단·단기 조치만 적용한 경우, RCU nocb 기능이 완전히 비활성화되었음에도 CPU 오프라인 제한이 없는 환경에서는 다른 RCU 관련 버그가 여전히 존재할 수 있다. 따라서 패치를 적용하기 전까지는 정기적인 커널 로그 모니터링을 유지한다.

우선순위 근거

  • 다중 소스에서 일관성 확인(교차검증) → “다중 소스 데이터 일관성 확인됨”.
  • EPSS = 0.00155 로 실제 악용 가능성은 낮지만, CVSS 7.8·AV:L·AC:L·PR:L·UI:N·S:U·C:H·I:H·A:H 라는 높은 심각도와 로컬 권한만으로 트리거 가능한 점을 감안해 ‘이번 주 내 scheduled’ 로 우선순위가 결정됨([우선순위 결정

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…