Kestrel
CVE-2025-21731DGX_E· 2026년 7월 31일 AM 02:11

[단독공격] 분석 — CVE-2025-21731

CVE-2025-21731 is a local use‑after‑free in the Linux NBD driver that can be triggered by an unprivileged process to achieve kernel memory corruption and privilege escalation; immediate mitigation is to disable or patch the NBD module.

📋 요약

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

🔍 공격 기법

  • 공격 표면: nbd 커널 모듈이 로드된 시스템에서 Generic Netlink 인터페이스(netlink)를 통해 nbd_genl_disconnect()nbd_genl_reconfigure() 호출이 가능하면 노출됨.
  • 전제 조건:
    1. 공격자는 로컬 계정으로 CAP_NET_ADMIN 수준 이하의 권한을 보유 (CVSS PR:L).
    2. NBD 모듈이 활성화돼 있어 /sys/module/nbd가 존재하거나 modprobe nbd가 가능해야 함.
  • 단계별 흐름:
    1. 정찰lsmod | grep nbd, cat /proc/netlink 등으로 NBD 모듈 존재 확인.
    2. 초기 접근 – 사용자 공간 프로그램에서 Netlink 메시지를 전송해 nbd_genl_disconnect() 호출, 기존 recv_work 큐를 플러시하고 NBD_RT_HAS_CONFIG_REF 비트를 클리어하지 않은 상태 유지.
    3. 경쟁 조건 유발 – 바로 이어서 nbd_genl_reconfigure() 를 호출해 새로운 recv_work 작업을 다시 큐에 삽입. 이때 아직 해제되지 않은 nbd_config 참조가 남아 있음.
    4. 실행·권한 획득 – 플러시된 recv_work 가 실행되면 nbd_config_put() 로 이미 해제된 객체를 다시 접근 → Use‑After‑Free 발생, 임의 커널 메모리 덮어쓰기 가능.
    5. 지속·영향 – 성공 시 커널 주소 공간을 조작해 루트 권한으로 쉘을 얻거나, 악성 모듈 로드 등 지속적인 제어 확보.
  • CVSS와 실제 조건 매핑: AV:L (로컬), AC:L (경쟁 조건 트리거가 단순), PR:L (저권한), UI:N (사용자 개입 없음) → 공격이 현장에선 실현 가능함을 의미.

악용 가능성: 이 취약점은 AV:L(Local)·AC:L(Low complexity)·PR:L(Low privileges)·UI:N(No interaction)이라는 CVSS 벡터가 의미하듯, 로컬에 접근할 수 있는 일반 사용자 계정만으로도 공격을 시작할 수 있습니다. 그러나 실제로 악용하려면 NBD(netlink) 인터페이스를 통해 nbd_genl_disconnectnbd_genl_reconfigure 호출을 연속적으로 수행해 UAF(use‑after‑free) 상태가 발생하도록 워크큐 플러시와 재큐잉 사이의 레이스 타이밍을 정확히 맞춰야 하므로, 공격 난이도는 “hard”로 평가됩니다. EPSS = 0.00219이라는 실측값은 현재까지 이 조건을 만족하는 실제 공격 사례가 극히 드물다는 것을 보여주며, KEV에 등재되지 않은 점 역시 현 시점에서 활발한 위협으로 전환되지 않았음을 뒷받침합니다. 노출된 공격 표면은 NBD 디바이스를 관리하는 generic netlink 메시지와 /dev/nbd* 장치 파일이며, 특히 disconnect·reconfigure 파라미터가 조작 가능한 경우에만 레이스 조건이 성립됩니다. 따라서 공격자는 먼저 로컬에서 해당 커널 모듈이 로드된 시스템을 식별하고(정찰), netlink 소켓을 열어 위 두 API를 연속 호출해 워크큐가 비워지는 순간을 포착해야 합니다. 이 과정에서 요구되는 정확한 타이밍 제어와 특정 커널 설정(NBD 지원) 때문에, 실제 환경에서 재현하기는 어려우나 이론적으로는 권한 상승 및 서비스 거부 효과를 얻

💥 영향 분석

  • 커널 메모리 손상 → 루트 권한 상승 및 전체 시스템 장악.
  • NBD 디바이스가 마운트된 경우 데이터 무결성 파괴, 서비스 중단 가능.

🔗 관련 취약점·체이닝

  • CWE‑416 (Use After Free) 를 기반으로 한 일반적인 커널 RCE 패턴과 동일하게 동작함.
  • 추정: 다른 로컬 권한 상승 결함(예: CVE-2024-XXXXX와 같은 privilege escalation via race condition) 과 연계하면 초기 저권한을 바로 루트로 전이 가능함. (구체적인 CVE 번호는 확인되지 않음)

🔎 탐지

  • 커널 로그(dmesg, /var/log/kern.log)에 “use after free” 또는 “nbd_config_put” 관련 OOPS 메시지가 기록됨.
  • auditd/netlink 감시: auditctl -a exit,always -S netlink_sendmsg -F subj_type=unconfined_t 로 NBD Netlink 호출 빈도 급증 시 알림.
  • Workqueue 모니터링: cat /proc/$(pidof kworker)/status 에서 비정상적인 recv_workq 재큐 현황 포착.

🛡️ 완화 방안

  • 즉시: NBD 모듈이 필요 없으면 modprobe -r nbd 로 언로드하거나 /etc/modprobe.d/disable-nbd.confinstall nbd /bin/true 추가.
  • 패치 적용: 커널 5.15.180 이상, 6.1.130 이상 등 해당 취약점이 수정된 버전으로 업그레이드. 기존 LTS 배포판에서는 백포트 패치를 적용.
  • 권한 제한: cap_net_admin 권한을 최소화하고 SELinux/AppArmor 프로파일에서 NBD Netlink 인터페이스 접근을 차단.
  • 모니터링 강화: 위 탐지 항목을 SIEM에 연동해 실시간 알림 설정.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…