[단독방어] 분석 — CVE-2025-71086
CVE-2025-71086 is a local kernel out‑of‑bounds read in the ROSE driver that can cause privilege escalation or DoS, and the fastest mitigation is to blacklist the rose module until a patched kernel is deployed.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.0012 · 악용난이도 hard
🔍 공격 기법
ROSE 드라이버의 rose_kill_by_device() 함수가 네트워크 디바이스를 down 할 때 소켓 포인터를 로컬 배열에 수집하고 반복합니다. 루프 인덱스를 array[cnt] 대신 array[i]로 잘못 사용해, cnt < ARRAY_SIZE(array)이면 초기화되지 않은 엔트리를 읽고, cnt == ARRAY_SIZE(array)이면 OOB‑read가 발생합니다. 이때 커널은 임의 메모리(소켓 구조)를 역참조하여 NULL 혹은 오염 포인터 dereference와 동시에 sock_hold() 로 증가된 레퍼런스를 해제하지 못하게 합니다. 공격자는 로컬 계정으로 ip link set rose0 down 등 ROSE 인터페이스를 다운시키면 버그가 트리거됩니다(특권 요구도 PR:L, UI:N).
악용 가능성: CVSS 벡터 AV:L/AC:L/PR:L/UI:N은 공격이 네트워크를 통해 이루어지지 않고, 로컬에서 간단한 명령만으로 수행될 수 있음을 의미합니다. AC:L에 따라 공격자는 특별한 사전 조건 없이 ip link down rose0와 같은 한 줄의 커맨드만 실행하면 되고, PR:L은 비특권 사용자라도 해당 경로에 접근할 수 있음을 나타냅니다. UI:N은 사용자의 추가적인 조작이 전혀 필요하지 않아 명령을 실행하는 순간 자동으로 취약 코드가 호출
💥 영향 분석
- 커널 메모리 손상 → 시스템 패닉 및 서비스 전체 중단(DoS)
- 잘못된 소켓 포인터 dereference → 권한 상승 후 루트 쉘 획득 가능
sock_hold()레퍼런스 누수 → 장기 실행 프로세스에서 파일 디스크립터·메모리 고갈 위험
🔗 관련 취약점·체이닝
ROSE 드라이버와 유사하게 배열 인덱싱 오류가 커널 네트워킹 스택에서 발생한 과거 사례(CVE‑2024‑xxxx 등)와 동일한 “읽기 후 포인터 dereference → 권한 상승” 패턴을 공유합니다. 해당 취약점이 성공하면 힙 스프레이·KASLR 우회 등 다른 메모리 오염 기법과 연계해 완전한 루트 획득 체인을 구성할 수 있습니다.
🔎 탐지
- 커널 로그 지표
dmesg,/var/log/kern.log,journalctl -k에 다음 문자열이 기록됩니다.
1rose_kill_by_device.*(array index out of bounds|invalid address|NULL pointer dereference)-
OOB‑read가 발생하면 일반적인 “BUG: kernel NULL pointer dereference” 메시지와 함께
func=rose_kill_by_device필드가 포함됩니다. -
SIEM 쿼리 예시 (Elastic/Kibana)
text1source.category:"kernel"2and message:*rose_kill_by_device*3and (message:*array index out of bounds* or message:*NULL pointer dereference*)4and @timestamp >= now()-5m -
정규식 기반 탐지 (Logstash, Fluent Bit 등)
text1(?i)rose_kill_by_device.*(out of bounds|invalid address|NULL pointer)적용 대상:
/var/log/kern.log,journalctl스트림 -
오탐 튜닝
- 디버그 커널이 비활성화된 경우 위 메시지가 누락될 수 있으므로, “device down” 이벤트와 연계해
auditdsyscall=execve, exe=/sbin/ip 또는 /sbin/ifconfig 기록을 AND 조건에 포함합니다. - 정상적인 ROSE 모듈 초기화 시 발생하는 단순 경고는
array index out of bounds가 없으므로, 해당 패턴이 나타날 경우 반드시auditd로그와 매칭해 실제 인터페이스 다운 명령 실행 여부를 확인하면 오탐을 크게 감소시킬 수 있습니다.
- 디버그 커널이 비활성화된 경우 위 메시지가 누락될 수 있으므로, “device down” 이벤트와 연계해
🛡️ 완화 방안
- 즉시(긴급 차단) – 오늘 당장 적용할 임시 조치
- ROSE 모듈을 블랙리스트에 추가하고 현재 로드된 경우 언로드합니다.
1modprobe -r rose # 로드된 경우 즉시 제거 2echo "blacklist rose" > /etc/modprobe.d/disable-rose.conf-
구현 난이도 ★, 운영 영향 ▲(ROSE 기반 서비스가 전면 차단됨). 적용 후
lsmod | grep rose가 비어 있는지 확인합니다. -
단기(완화)
- sysctl 로 ROSE 소켓 할당을 완전히 차단:
1sysctl -w net.rose.max_sockets=0 2echo "net.rose.max_sockets = 0" >> /etc/sysctl.conf 1구현 난이도 ★★, 운영 영향 △(다른 네트워크 기능은 정상). 적용 후 `sysctl -n net.rose.max_sockets` 가 0인지 검증합니다. - auditd 규칙 추가로 ROSE 인터페이스 다운 시도를 기록:
1auditctl -a exit,always -F exe=/sbin/ip -F args=~"link set .* down" -k rose_down 1구현 난이도 ★, 로그량 증가에 따른 오버헤드가 약간 있습니다. - 근본(해결)
- 취약 코드가 수정된 커널 패키지를 적용합니다. 영향을 받는 버전은
4.19.304‑4.20,5.4.266‑5.5,5.10.206‑5.10.248,5.15.146‑5.15.198,6.1.70‑6.1.160,6.6.9‑6.6.120,6.7.1‑6.12.64,6.13‑6.18.4이상으로 업데이트합니다.
구현 난이도 ★★★(재부팅 필요), 운영 영향 ▲(업데이트 적용 중 서비스 일시 중단). - 업그레이드 후
uname -r로 커널 버전을 확인하고,dmesg | grep rose_kill_by_device에 오류 메시지가 없는지 검증합니다.
- 취약 코드가 수정된 커널 패키지를 적용합니다. 영향을 받는 버전은
잔여 리스크: 패치 전까지는 즉시 차단·sysctl 제한으로 공격 표면을 크게 축소했지만, 이미 로드된 ROSE 모듈이 남아 있거나 로그가 충분히 상세하지 않을 경우 탐지가 어려울 수 있습니다. 따라서 위 조치를 적용한 뒤에도 커널 Oops 발생 여부를 지속적으로 모니터링하고, 가능한 한 빠른 시일 내에 패치된 커널로 교체하는 것이 권고됩니다.
우선순위 근거: 다중 소스에서 일관성을 확인했으며(CVE-2025-71086 교차검증), EPSS 0.0012는 실제 악용 가능성이 낮지만 존재함을 의미합니다. CVSS 7.8·high와 로컬 권한 상승 위험을 고려해 이번 주 내에 “scheduled” 조치로 지정되었습니다(우선순위 결정 논리: CVSS ≥ 7·non‑KEV·EPSS > 0·exploit hard).
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.0012 · exploit=hard · in_scope=None