[공격] 분석 — 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 발생.
- 공격 체인:
- 정찰/초기접근: 로컬 사용자 권한(
PR:L) 확보.ROSE모듈 활성화 여부 확인. - 실행 (Trigger): ROSE 소켓을 대량 생성하여
array[]를 채우고, 대상 네트워크 인터페이스를 Down시켜rose_kill_by_device()호출 유도. - 권한 획득/영향: 잘못된 포인터 역참조로 인한 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