Kestrel
CVE-2025-21731DGX_A· 2026년 7월 31일 AM 02:39

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

CVE-2025-21731 is a high‑severity use‑after‑free bug in the Linux NBD driver that can be fully mitigated by applying the upstream kernel patch or by disabling the nbd module.

📋 요약

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

🔍 공격 기법

  • 공격 표면 : Linux 커널의 NBD(Network Block Device) 드라이버가 제공하는 netlink 인터페이스(nbd_genl_disconnect, nbd_genl_reconfigure)와 내부 workqueue(recv_workq).

  • 전제 조건 : 로컬 계정이 존재하고, 해당 시스템에 NBD 모듈이 로드되어 있으며 netlink 메시지를 전송할 수 있어야 함(Privileges = Low).

  • 단계별 흐름

    1. 정찰lsmod | grep nbd 로 NBD 모듈 존재 확인, /proc/net/netlink 를 통해 지원되는 genl family 조회.
    2. 초기 접근 – 로컬에서 netlink 소켓을 열어 NBD_GENL_DISCONNECT 메시지를 전송해 NBD 디바이스를 “disconnect” 상태로 만든다. 이때 내부적으로 nbd_genl_disconnect() 가 호출되어 nbd_config 의 레퍼런스 카운트가 0이 되지 않은 채 플러시 작업(flush_workqueue)을 수행한다.
    3. 경쟁 조건 유도 – 바로 이어서 NBD_GENL_RECONFIGURE 메시지를 전송한다. nbd_genl_reconfigure()nbd_get_config_unlocked() 로 현재 nbd_config 포인터를 얻고, nbd_reconnect_socket() 을 통해 다시 recv_workq 에 작업을 큐에 넣는다.
    4. 레퍼런스 해제 – 첫 단계에서 잡아두던 임시 레퍼런스가 해제되면 nbd_config 가 실제로 free 된다.
    5. UAF 트리거 – 워크큐에 남아 있던 recv_work() 가 실행될 때 nbd_config_put() 이 이미 해제된 객체를 다시 참조·해제하면서 use‑after‑free가 발생한다.
  • 공격 결과 : 커널 레벨에서 임의 코드 실행이 가능해지며, 루트 권한을 획득하거나 시스템 전체를 장악할 수 있다(Impact = High).

  • CVSS와 실제 조건 매핑 : AV:L (로컬), AC:L (복잡도 낮음, 타이밍 레이스만 필요), PR:L (일반 사용자 권한), UI:N (사용자 개입 없음) – 따라서 위 단계가 그대로 공격 성공에 필요한 전제조건이다.

악용 가능성: 이 취약은 AV:L(로컬)·AC:L(낮은 복잡도)·PR:L(저권한)·UI:N(사용자 개입 없음)이라는 CVSS 벡터가 그대로 실제 전제조건을 반영합니다. 즉, 공격자는 로컬 시스템에 접근할 수 있는 일반 사용자 계정만 있으면 되며, 특별한 환경 설정이나 순서 없이도 바로 악용이 가능하다는 뜻입니다. 그러나 nbd(Network Block Device) 모듈이 커널에 로드되고 /dev/nbd* 디바이스가 노출돼 있어야 하며, netlink 인터페이스(nbd_genl_disconnect, nbd_genl_reconfigure)를 통해 재연결 흐름을 조작할 수 있는 권한이 필요합니다. 공격 표면은 주로 netlink 메시지ioctl(NBD_SET_… ) 호출이며, 이들 파라미터가 커널 내부의 nbd_config 객체에 대한 임시 참조를 남긴 뒤 해제되지 않을 경우 UAF(Use‑After‑Free)가 발생합니다. EPSS = 0.00219이라는 실측값은 현재 실제 공격이 매우 드물지만, 존재한다는 점을 보여 주며, KEV 미등재는 아직 광범위하게 악용된 사례가 없음을 의미합니다. 따라서 난이도는 “hard”로 평가되지만, 로컬 저권한 사용자가 NBD 디바이스를 자유롭게 사용할 수 있는 환경이면 이론적으로 완전한 권한 상승 및 커널 패닉을 일으킬 수 있는 실질적인 위협이 존재합니다.

💥 영향 분석

  • 커널 메모리 손상으로 인한 권한 상승전체 시스템 장악이 가능함.
  • NBD 디바이스가 사용 중인 환경(스토리지 백엔드, 클라우드 이미지 서버 등)에서는 서비스 중단이나 데이터 무결성 훼손 위험이 존재함.

🔗 관련 취약점·체이닝

  • Memory‑Corruption (CWE‑416: Use After Free) 가 기본 원리이며, 동일한 메모리 해제/재사용 패턴을 이용하는 다른 커널 드라이버 결함과 연계될 수 있음(예: CVE‑2024‑XXXX와 같은 workqueue race).
  • 추정: NBD 모듈이 ioctl 기반으로 외부 스토리지에 접근할 경우, 해당 ioctl 취약점과 조합하면 원격 공격 벡터로 확장될 가능성이 있다.

🔎 탐지

  • dmesg 혹은 커널 로그에 nbd_config_put 후 바로 발생하는 use‑after‑free 오류 메시지가 기록되는 경우.
  • 짧은 시간 내에 동일한 netlink family에 대해 DISCONNECTRECONFIGURE 순서가 반복적으로 전송되는 트래픽 패턴.
  • recv_workq 가 비정상적으로 높은 빈도로 스케줄링되거나 워크큐 플러시 로그가 급증하는 현상.

🛡️ 완화 방안

  1. 즉시 조치 – NBD 모듈을 언로드하고 블랙리스트에 등록합니다.
    text
    1modprobe -r nbd
    2echo "blacklist nbd" > /etc/modprobe.d/blacklist-nbd.conf
  2. 패치 적용 – 커널 버전을 4.12‑5.156.2‑6.13 등 영향을 받는 범위에서 최신 패치가 포함된 릴리스(예: 5.10.236, 6.1.130 이상)로 업데이트합니다.
  3. 백포트 – NBD 드라이버 소스에 NBD_RT_BOUND 플래그를 nbd_genl_disconnect() 에서 클리어하는 패치를 직접 적용하고 재컴파일합니다.
  4. 감시 강화 – 위 탐지 항목을 SIEM/EDR 정책에 추가하여 비정상적인 netlink 메시지 흐름 및 워크큐 활동을 실시간 알림으로 모니터링합니다.

위 조치를 이번 주 내에 수행하는 것이 권고됩니다. (우선순위 = scheduled, 교차검증 결과 다중 소스에서 일관성 확인, EPSS 0.00219 로 실제 악용 확률은 낮지만 CVSS 7.8·hard 난이도·non‑KEV 특성을 고려한 신속 대응 필요)

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…