Kestrel
CVE-2025-21745DGX_A· 2026년 7월 31일 AM 02:48

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

CVE-2025-21745 is a local kernel refcount leak in blk‑cgroup that can be abused by low‑privilege processes to trigger a denial‑of‑service, and the primary mitigation is applying the upstream patch or disabling blkio statistics.

📋 요약

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

🔍 공격 기법

  • 공격 표면: blkcg_fill_root_iostats()가 호출되는 경로는 블록 cgroup의 I/O 통계 파일(blkio.stat, io.stat 등) 읽기·쓰기이며, 해당 함수 내부에서 class_dev_iter_(init|next)()만 사용하고 class_dev_iter_exit()를 누락한다.
  • 전제 조건:
    1. 공격자는 로컬 시스템에 존재하며, 최소 권한(일반 사용자)으로 실행된다 (PR:L).
    2. 커널 버전이 5.9‑6.13.3 사이이며 해당 패치가 적용되지 않은 상태여야 한다 (다중 소스 교차검증에서 일관성 확인).
  • 단계:
    1️⃣ 정찰uname -r 로 커널 버전 확인, /proc/filesystems·/sys/fs/cgroup 에서 blkio 컨트롤러가 활성화돼 있는지 점검.
    2️⃣ 초기 접근 – 일반 사용자 권한으로 새 cgroup 디렉터리를 생성하고 blkio.stat 파일을 반복적으로 cat 혹은 read() 호출한다. 이는 blkcg_fill_root_iostats()를 강제 실행시킨다.
    3️⃣ 실행·권한 획득 – 각 호출마다 클래스 서브시스템의 레퍼런스 카운트가 1씩 증가하지만 해제되지 않음(class_dev_iter_exit 부재).
    4️⃣ 지속 – 스크립트(예: while :; do cat /sys/fs/cgroup/.../blkio.stat > /dev/null; done) 로 고빈도 호출을 유지해 레퍼런스 카운트를 지속적으로 증가시킨다.
    5️⃣ 영향 – 커널 내부 서브시스템 레퍼런스가 한계에 도달하면 refcount_warn() 가 트리거되고, 최종적으로 커널 패닉 또는 재부팅이 발생한다 (A:H). 이는 서비스 거부(DoS) 효과를 제공한다.
  • 공격 조건과 CVSS 연결: AV:L (로컬), AC:L (단순 파일 읽기), PR:L (일반 사용자), UI:N (특수 입력 없음) → 실제 공격은 복잡한 권한 상승 없이도 수행 가능하지만, 레퍼런스 누수가 쌓여야 하므로 “hard” 난이도로 평가된다(EPSS 0.00227, 실측 예측).

악용 가능성: 이 취약점은 AV:L(로컬), AC:L(낮은 복잡도), PR:L(저특권)·UI:N(사용자 상호작용 없음)이라는 CVSS 벡터가 의미하듯, 로컬에서 실행되는 프로세스라면 코드 흐름을 조작하는 것 자체는 비교적 쉽지만, 실제 공격이 성공하려면 CAP_SYS_ADMIN 이상의 권한을 가진 사용자여야 합니다. 따라서 일반 사용자나 원격 공격자는 직접 접근할 수 없으며, 초기 진입 단계에서 별도의 특권 상승(예: 다른 커널 취약점)이나 루트 쉘 확보가 전제됩니다. EPSS 값이 0.00227로 매우 낮고 KEV에 등재되지 않은 점은 현재까지 실전에서 이 결함을 이용한 공격 사례가 거의 없음을 보여주어, 이론적 위험도와는 별개로 실제 위협도가 제한적임을 뒷받침합니다. 공격 표면은 블록‑cgroup 서브시스템의 blkcg_fill_root_iostats() 함수이며, 이는 /sys/fs/cgroup/blkio 등 cgroup 파일 시스템을 통해 간접적으로 호출됩니다. 해당 경로에 접근할 수 있는 프로세스가 클래스 디바이스를 순회하면서 class_dev_iter_exit() 를 누락하면 서브시스템 레퍼런스 카운트가 점진적으로 증가하고, 결국 커널 메모리 고갈이나 서비스 거부(

💥 영향 분석

  • 성공 시 커널 레퍼런스 카운트가 고갈되어 시스템 전체가 패닉을 일으키고 재부팅되며, 이는 서비스 가용성을 완전히 상실하게 만든다.
  • 기밀성·무결성은 직접적으로 손상되지 않으며, 공격 자체는 권한 상승을 제공하지 않는다.

🔗 관련 취약점·체이닝

  • 유형: 레퍼런스 카운트 관리 부실(CWE‑?? 미분류) → 자원 고갈(DoS).
  • 잠재적 체인: 동일 커널에 존재하는 다른 리소스 누수(CVE‑xxxx‑yyyy 등)와 결합하면 더 빠른 시스템 불안정성을 초래할 수 있다. 예를 들어, kmem_cache 혹은 socket 레퍼런스 누수와 병행될 경우 전체 메모리 소진 속도가 급증한다.
  • 추정: 다른 로컬 권한 상승 취약점(CVE‑2024‑xxxx 등)과 연계해 DoS 후 재부팅 시점에 커널 패치를 적용하지 못하도록 방해함으로써 영구적인 서비스 마비를 유도할 가능성이 있다.

🔎 탐지

  • dmesg·/var/log/kern.log 에서 “refcount overflow” 혹은 “blk-cgroup subsystem refcnt leak” 와 유사한 경고 메시지가 반복적으로 기록되는 경우.
  • auditdopen/read 시스템 콜이 /sys/fs/cgroup/*/blkio.stat 파일에 비정상적으로 높은 빈도로 발생하는지 모니터링.
  • 커널 메모리 사용량 급증 및 OOM killer 활성화 로그를 연계해 이상 징후를 탐지한다.

🛡️ 완화 방안

1️⃣ 패치 적용 – 해당 커밋( class_dev_iter_exit() 호출 추가) 이 포함된 최신 커널 버전으로 업데이트하거나, 배포판에서 제공하는 보안 패치를 즉시 설치한다.
2️⃣ blkio 통계 비활성화 – blkio 컨트롤러를 사용하지 않을 경우 cgroup v2 마운트 시 -o -blkio 옵션을 지정하거나, 기존 cgroup에 대해 echo 0 > /sys/fs/cgroup/.../blkio.enable (가능한 경우) 로 통계 수집을 차단한다.
3️⃣ 모니터링 강화 – 위 탐지 항목을 SIEM·EDR 에 연동해 실시간 알림을 설정하고, 비정상적인 blkio.stat 접근 빈도를 제한한다(예: cgroup 파일에 대한 rlimit 적용).
4️⃣ 긴급 대응 – 공격 징후가 포착되면 해당 프로세스를 즉시 종료하고, 시스템 재부팅 후 패치된 커널로 부팅한다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…