Kestrel
CVE-2025-21745DGX_1· 2026년 7월 29일 AM 12:20

[방어] 분석 — CVE-2025-21745

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

📋 요약

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

🔍 공격 기법

  1. 트리거 조건: blkcg_fill_root_iostats() 함수가 @block_class 장치들을 순회할 때, 종료 함수인 class_dev_iter_exit()를 호출하지 않아 subsystem refcount(참조 횟수)가 누적되어 해제되지 않는 결함을 이용합니다.
  2. 공격 단계:
    • 초기 접근: 공격자는 시스템에 로그인하여 로컬 사용자 권한(PR:L)을 획득해야 합니다.
    • 실행: blk-cgroup 관련 인터페이스나 I/O 통계 정보가 생성되는 경로를 반복적으로 트리거합니다.
    • 영향: refcount leakage가 누적되어 커널 메모리 자원이 고갈되며, 결과적으로 시스템 불안정 또는 Crash(DoS)가 발생합니다.
  3. 공격 표면: Linux Kernel의 blk-cgroup 서브시스템 및 관련 I/O 통계 인터페이스.
  4. CVSS 벡터 연결:
    • AV:L: 로컬 접근이 필요하므로 네트워크를 통한 직접 공격은 불가능합니다.
    • AC:L: 특별한 환경 설정 없이 취약한 버전의 커널이면 트리거 가능합니다.
    • PR:L: 일반 사용자 권한만으로도 실행 가능한 경로가 존재함을 의미합니다.
    • UI:N: 사용자의 상호작용이 필요 없습니다.

악용 가능성: 본 취약점의 공격 난이도는 Hard로 평가되며, 이는 CVSS 벡터 AV:LPR:L에서 알 수 있듯 공격자가 이미 시스템 내부에 낮은 권한(Low Privilege)으로 진입하여 로컬 셸을 확보한 상태여야 함을 전제로 합니다. 공격 표면은 Linux 커널의 blk-cgroup 하위 시스템이며, 특히 blkcg_fill_root_iostats() 함수 내에서 class_dev_iter_exit() 누락으로 인해 발생하는 subsystem refcount leakage(참조 횟수 누수)가 트리거 조건입니다. 이론적으로는 리소스 누수를 통한 서비스 거부(DoS)나 커널 메모리 오염을 노릴 수 있으나, EPSS 수치가 0.00227로 매우 낮고 KEV(Known Exploited Vulnerabilities)에 등재되지 않은 점은 실제 야생(In-the-wild)에서 악용된 사례가 거의 없음을 시사합니다. 결과적으로 로컬 권한을 가진 공격자가 커널 내부의 정교한 메모리 상태를 조작해야 하므로 실행 난이도가 매우 높으며, 단순한 리소스 누수 특성상 즉각적인 원격 코드 실행(RCE)으로 이어질 가능성은 낮습니다. 따라서 본 취약점의 악용 가능성은 제한적이지만, 권한 상승을 노리는 정교한 로컬 공격자의 2차 공격 단계로 활용될 잠재적 위험이 존재합니다.

💥 영향 분석

  1. 기술적 위험: Subsystem refcount leakage로 인한 커널 메모리 누수 및 가용성 저하(Denial of Service). 시스템 전체의 Panic 또는 특정 서비스 응답 불가 상태가 발생할 수 있습니다.
  2. 비즈니스 영향: 서버 가동 중단으로 인한 서비스 다운타임 발생 및 이에 따른 SLA 위반 위험이 있습니다. 다만, AV:L 특성상 외부 공격자에 의한 즉각적인 대규모 서비스 중단보다는 내부 사용자나 권한을 획득한 공격자에 의한 가용성 파괴 위험이 큽니다.

🔗 관련 취약점·체이닝

  • 추정: 본 취약점은 단독으로 시스템 장악(RCE)이나 권한 상승(LPE)을 일으키지는 않으나, 메모리 고갈 상태를 유도하여 커널의 다른 메모리 관리 메커니즘을 불안정하게 만든 뒤, 다른 Use-After-Free(UAF)나 Race Condition 취약점과 체이닝하여 권한 상승을 시도하는 경로로 활용될 가능성이 있습니다.

🔎 탐지

  1. 로그 지표: 커널 로그(dmesg, /var/log/syslog)에서 blk-cgroup 관련 메모리 할당 오류나 Slab memory 누수 징후를 확인합니다.
  2. 탐지 규칙 예시:
    • 로직: 특정 사용자 계정이 짧은 시간 내에 비정상적으로 많은 수의 cgroup I/O 통계 요청을 생성하는지 모니터링합니다.
    • SIEM 의사코드:
      SELECT user, count(*) FROM kernel_events WHERE event_type='blkcg_iostats_access' GROUP BY user HAVING count > [Threshold] WITHIN 1m
    • 커널 메모리 모니터링: slabtop 또는 /proc/slabinfo에서 특정 커널 객체의 카운트가 지속적으로 상승하고 감소하지 않는 패턴을 탐지합니다.
  3. 오탐 및 튜닝: I/O 집약적인 워크로드를 가진 정당한 모니터링 에이전트나 컨테이너 오케스트레이션 도구가 유사한 패턴을 보일 수 있습니다. 화이트리스트에 신뢰할 수 있는 시스템 계정을 등록하여 필터링합니다.

🛡️ 완화 방안

  • 즉시(긴급 차단):

    • 조치: 일반 사용자의 cgroup 접근 권한 제한 및 불필요한 I/O 통계 인터페이스 접근 차단.
    • 난이도/영향: 낮음 / 일부 모니터링 도구 작동 불가 가능성.
    • 검증: 비특권 계정으로 /sys/fs/cgroup/blkio 등 관련 경로 접근 시 Permission denied 확인.
    • 우선순위: 높음 (오늘 당장 적용 가능한 유일한 임시 방편).
  • 단기(완화):

    • 조치: 시스템 리소스 제한(ulimit) 및 cgroup 계층 구조의 깊이/개수 제한 설정을 통해 자원 고갈 속도를 늦춤.
    • 난이도/영향: 중간 / 애플리케이션 성능 저하 가능성.
    • 검증: systemd 설정 또는 커널 파라미터 적용 확인.
    • 우선순위: 중간.
  • 근본(해결):

    • 조치: 영향받는 Linux Kernel 버전을 수정 버전으로 업데이트 (5.9~6.1.129 $\rightarrow$ 패치 버전, 6.2~6.6.78 $\rightarrow$ 패치 버전 등).
    • 난이도/영향: 높음 / 커널 업데이트 후 리부팅 필요(서비스 중단 발생).
    • 검증: uname -r 명령어로 업데이트된 커널 버전 확인.
    • 우선순위: 최상.

[분석 근거] 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며(신뢰도 1.0), EPSS 실측값 0.00227(백분위 0.13599)과 AV:L 벡터, KEV 미등재 사실에 근거하여 실제 악용 가능성을 hard로 평가하였습니다. 이에 따라 즉각적인 패치보다는 모니터링(monitor) 위주의 우선순위를 결정하였습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…