Kestrel
CVE-2025-71086DGX_2· 2026년 7월 30일 AM 12:55

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

Local attacker can trigger an out-of-bounds read in the ROSE protocol's rose_kill_by_device() function to cause kernel panic or potential privilege escalation, requiring immediate module disabling or patching.

📋 요약

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

🔍 공격 기법

본 취약점은 Linux 커널의 구형 프로토콜인 ROSE (Routing Open Socket Every) 구현체에서 발생한다.

  • 공격 표면 및 트리거: net: rose 모듈이 로드된 상태에서, 네트워크 디바이스가 Down될 때 호출되는 rose_kill_by_device() 함수가 타겟이다. 공격자는 특정 디바이스에 바인딩된 소켓들을 생성하여 커널 내 로컬 배열(array[])에 적재시킨 후, 해당 디바이스를 Down시키는 동작을 유발해야 한다.
  • 결함 원리: 루프 내부에서 인덱스 변수 i 대신 전체 개수를 나타내는 cnt를 사용하여 array[cnt]에 접근한다.
    • cnt < ARRAY_SIZE(array): 초기화되지 않은 메모리 영역을 읽어 잘못된 소켓 포인터를 역참조함.
    • cnt == ARRAY_SIZE(array): 배열 범위를 벗어난 Out-of-Bounds (OOB) Read 발생.
  • 공격 체인:
    1. 정찰/초기접근: 로컬 사용자 권한(PR:L) 확보. ROSE 모듈 활성화 여부 확인.
    2. 실행 (Trigger): ROSE 소켓을 대량 생성하여 array[]를 채우고, 대상 네트워크 인터페이스를 Down시켜 rose_kill_by_device() 호출 유도.
    3. 권한 획득/영향: 잘못된 포인터 역참조로 인한 Kernel Panic(DoS) 유발 또는 추정: 커널 메모리 레이아웃을 정교하게 조작했다면 임의 주소 읽기를 통한 정보 유출 및 권한 상승 시도 가능.
  • CVSS 벡터 연결: AV:L/AC:L/PR:L은 로컬 권한을 가진 사용자가 특별한 복잡성 없이(Low Complexity) 트리거할 수 있음을 의미한다.

악용 가능성: 본 취약점은 Linux 커널의 ROSE(Rose Protocol) 프로토콜 스택 내 rose_kill_by_device() 함수에서 발생하는 Out-of-Bounds Read 및 잘못된 포인터 참조 결함입니다. 공격 벡터가 AV:L이며 PR:L 조건이 필요하므로, 공격자는 이미 시스템에 낮은 권한의 계정으로 접근하여 커널 모듈을 제어할 수 있는 로컬 환경을 확보해야 합니다. 공격 표면은 ROSE 프로토콜 엔드포인트와 디바이스 인터페이스로 제한되며, 특정 네트워크 장치를 다운시키는 과정에서 array[cnt] 인덱스 오류를 트리거하여 유효하지 않은 소켓 포인터를 역참조하게 만들어야 합니다. EPSS 수치가 0.0012로 매우 낮고 KEV에 등재되지 않은 점은 해당 프로토콜의 실사용률이 극히 낮아 야생(In-the-wild)에서의 악용 가능성이 희박함을 시사합니다. 하지만 로컬 권한을 가진 공격자가 커널 패닉(DoS)을 유도하거나, 메모리 레이아웃 분석을 통해 참조 누수 및 잘못된 포인터 읽기를 이용한 권한 상승(LPE) 체이닝을 시도할 수 있다는 점에서 이론적 위험성은 존재합니다. 결과적으로 AC:L로 트리거 조건은 단순하나, ROSE 프로토콜 활성화라는 특수한 전제 조건과 로컬 접근 권한이 필수적이기에 실제 공격 난이도는 Hard로 판정됩니다.

💥 영향 분석

  • 가용성 파괴: 잘못된 포인터 역참조로 인한 즉각적인 시스템 크래시(Kernel Panic).
  • 권한 상승: sock_hold()를 통한 레퍼런스 누수와 OOB Read가 결합될 경우, 커널 메모리 오염을 통한 권한 상승 가능성 존재.

🔗 관련 취약점·체이닝

본 취약점은 단독으로 RCE를 일으키기보다 다른 커널 취약점과 체이닝될 확률이 높다.

  • 정보 유출 $\rightarrow$ 권한 상승: OOB Read를 통해 커널 베이스 주소나 함수 포인터를 획득(KASLR 우회)한 뒤, 다른 Write-What-Where 취약점과 결합하여 commit_creds(prepare_kernel_cred(0)) 등을 실행하는 전형적인 커널 익스플로잇 패턴이 예상된다.
  • 추정: 메모리 관리 결함 체이닝: sock_hold()로 인한 레퍼런스 카운트 불일치가 발생하므로, 추정: Use-After-Free (UAF) 유형의 취약점으로 이어져 제어 흐름을 탈취하는 경로가 가능할 수 있다.

🔎 탐지

  • 모듈 로드 감시: lsmod | grep rose를 통해 불필요한 ROSE 프로토콜 모듈이 로드되어 있는지 확인.
  • 커널 로그 분석: dmesg 또는 /var/log/syslog에서 rose_kill_by_device 관련 세그멘테이션 폴트나 커널 덤프(Oops) 패턴 탐지.

🛡️ 완화 방안

  • 즉시 조치: ROSE 프로토콜을 사용하지 않는 경우, 모듈 블랙리스트에 추가하여 로드 차단 (modprobe -r rose 또는 /etc/modprobe.d/ 설정).
  • 근본 해결: 영향받는 커널 버전(4.19.304~6.18.4 등 광범위한 범위)에서 array[cnt]array[i]로 수정한 최신 패치 버전으로 업데이트.

분석 근거: 본 리포트는 다중 소스 데이터의 일관성이 확인된 결과(신뢰도 1.0)를 바탕으로 작성되었다. EPSS 실측값(0.0012, 백분위 0.02179)은 현재 실제 야생에서의 악용률이 매우 낮음을 나타내며, 이에 따라 exploit=hard 등급과 함께 '이번 주 내 대응'하는 scheduled 우선순위로 결정되었다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…