Kestrel
CVE-2025-21745DGX_2· 2026년 7월 29일 AM 01:11

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

A subsystem refcount leakage in the Linux kernel's blk-cgroup can lead to resource exhaustion and Denial of Service (DoS), requiring a kernel update to the patched versions.

📋 요약

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

🔍 공격 기법

(1) 트리거 조건: blkcg_fill_root_iostats() 함수 내에서 class_dev_iter_init() 또는 next()를 통해 @block_class 장치들을 순회하지만, 종료 시점에 class_dev_iter_exit()를 호출하지 않아 subsystem refcount가 누적되어 누수되는 결함이다.

(2) 공격 단계:

  • 정찰: 대상 시스템의 커널 버전 및 cgroup v2 활성화 여부 확인.
  • 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L 전제).
  • 실행/영향: blk-cgroup 관련 통계 정보(iostats)를 반복적으로 요청하거나 트리거하는 작업을 수행하여 커널 내 refcount를 지속적으로 증가시킴.
  • 결과: 누적된 refcount로 인해 메모리 자원이 고갈되거나 시스템 불안정 유발 $\rightarrow$ Denial of Service (DoS).

(3) 공격 표면:

  • 엔드포인트/함수: blkcg_fill_root_iostats() 및 관련 cgroup I/O 통계 인터페이스.
  • 파라미터: /sys/fs/cgroup/ 하위의 block I/O 관련 컨트롤러 파일들.

(4) CVSS 벡터 분석:

  • AV:L / PR:L: 로컬 계정 권한이 필수적이며, 원격에서 직접 트리거는 불가능함.
  • AC:L / UI:N: 특별한 설정이나 사용자 상호작용 없이 특정 함수 호출만으로 가능함.
  • A:H: 가용성(Availability)에 치명적인 영향을 주어 시스템 정지 유발 가능.

악용 가능성: 본 취약점은 AV:LPR:L 벡터가 명시하듯, 이미 시스템에 로그인한 저권한 사용자가 커널 내부의 리소스 누수를 유발해야 하는 국소적 공격 표면을 가집니다. 공격자는 blk-cgroup 관련 엔드포인트나 I/O 통계 수집 프로세스를 반복적으로 트리거하여 block_class의 subsystem refcount가 해제되지 않고 계속 쌓이게 만드는 방식으로 접근합니다. EPSS 수치가 0.00227로 매우 낮고 KEV에 등재되지 않은 점은, 이 결함 단독으로는 즉각적인 RCE나 권한 상승으로 이어지는 직접적인 익스플로잇 경로가 부재함을 의미합니다. 하지만 커널 메모리 내의 refcount 누수는 장기간 지속될 경우 슬랩 할당자(Slab Allocator)의 가용 자원을 고갈시켜 시스템 불안정성을 초래하는 DoS 상태를 유발할 수 있습니다. 실전 관점에서 이 취약점은 단독 공격보다는, 다른 커널 메모리 오염 취약점과 체이닝하여 힙 레이아웃을 조작하거나 특정 객체의 생명 주기를 강제로 연장해 Use-After-Free(UAF) 등의 조건을 형성하는 보조 수단으로 악용될 가능성이 높습니다. 결과적으로 공격 난이도는 hard이며, 단순한 서비스 거부 외의 치명적 영향력을 행사하기 위해서는 정교한 커널 메모리 조작 기법이 전제되어야 합니다.

💥 영향 분석

(1) 기술적 위험: 커널 내 subsystem refcount 누수로 인한 메모리 자원 잠식 및 최종적으로는 커널 패닉 또는 시스템 응답 불능 상태의 Denial of Service (DoS) 발생.
(2) 비즈니스 영향: 서버 가용성 상실로 인한 서비스 중단. 특히 다중 테넌트 환경(Container/K8s)에서 특정 사용자가 시스템 전체를 마비시킬 수 있는 위험이 존재함.

🔗 관련 취약점·체이닝

  • 추정 체이닝 경로: 본 취약점은 단독으로 권한 상승을 일으키지는 않으나, Resource Exhaustion $\rightarrow$ Kernel Panic/Instability 경로를 따름.
  • 유형 수준 체이닝: 추정: 다른 커널 메모리 오염(Memory Corruption) 취약점과 결합될 경우, 시스템의 불안정한 상태를 이용하여 레이스 컨디션(Race Condition)을 유도하거나 특정 커널 오브젝트의 생명주기를 조작하는 방식으로 공격 난이도를 낮추는 보조 수단으로 활용될 가능성이 있음.

🔎 탐지

(1) 로그 지표: dmesg 또는 /var/log/syslog 내에서 cgroup 관련 메모리 할당 오류나 커널 덤프 발생 전후의 비정상적인 I/O 통계 접근 로그.
(2) 탐지 규칙:

  • 로직: 특정 로컬 사용자가 짧은 시간 내에 /sys/fs/cgroup/.../io.stat (또는 유사 경로) 파일을 과도하게 반복 읽기 하는 패턴 감시.
  • SIEM 예시: SELECT user, count(*) FROM sys_access_logs WHERE path LIKE '%/sys/fs/cgroup/%' AND action = 'read' GROUP BY user HAVING count > [Threshold] WITHIN 1m
    (3) 오탐 및 튜닝: 모니터링 도구(Prometheus node_exporter 등)가 주기적으로 통계를 수집하는 경우 오탐 가능성 높음. 신뢰할 수 있는 서비스 계정은 화이트리스트 처리하고, 일반 사용자 계정의 비정상적 빈도만 필터링하여 튜닝.

🛡️ 완화 방안

  • 즉시(긴급 차단): cgroup v2의 I/O 컨트롤러 접근 권한을 제한하거나, 불필요한 경우 blkio 관련 설정을 비활성화 (난이도: 하 / 영향: 일부 모니터링 기능 상실).
  • 단기(완화): 일반 사용자의 /sys/fs/cgroup 하위 경로에 대한 읽기 권한을 최소화하여 공격 표면 축소 (난이도: 중 / 영향: 사용자 수준의 리소스 확인 불가).
  • 근본(해결): 패치된 커널 버전으로 업데이트.
    • Linux Kernel 6.1 $\rightarrow$ 6.1.129+
    • Linux Kernel 6.6 $\rightarrow$ 6.6.78+
    • Linux Kernel 6.12 $\rightarrow$ 6.12.14+
    • Linux Kernel 6.13 $\rightarrow$ 6.13.3+
      (난이도: 중 / 영향: 재부팅 필요, 가용성 일시 중단).

[파이프라인 근거] 본 분석은 다중 소스에서 데이터 일관성이 확인된 [교차검증] 결과와 실측 EPSS 값(0.00227)을 기반으로 합니다. 낮은 EPSS 수치와 AV:L/PR:L 조건, KEV 미등재 사실을 근거로 실제 악용 난이도를 hard로 판단하였으며, 이에 따라 대응 우선순위를 monitor로 결정하였습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…