[단독방어] 분석 — CVE-2025-21718
The Linux kernel “rose” timer race leads to use‑after‑free memory corruption (CVE-2025-21718); immediate mitigation is to disable the rose module via modprobe blacklisting while awaiting a patched kernel update.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00163 · 악용난이도 hard
🔍 공격 기법
Rose 타이머가 소켓 스핀락만 획득하고 해당 소켓이 현재 사용자 스레드에 의해 소유되고 있는지를 확인하지 않아, 사용자가 만든 소켓을 대상으로 타이머 콜백이 실행될 때 슬랩 영역의 메모리를 해제 후 재사용하게 됩니다. 로컬 권한을 가진 프로세스가 악의적인 소켓을 생성하고 타이머를 강제로 트리거하면 slab-use-after-free 가 발생하여 임의 코드 실행 또는 커널 패닉으로 이어집니다.
악용 가능성: 이 취약점은 로컬 공격자(AV:L)가 Rose 소켓을 생성하고 해당 타이머가 만료되는 순간에 레이스를 유발하면 되므로, 특수한 원격 접근 없이도 실행될 수 있습니다. 공격 복잡도는 낮게 평가된 이유는 소켓 스핀락만 획득하고 소유자를 확인하지 않는 단순 로직이므로, 적절한 타이밍만 맞추면 별도의 정교한 기술 없이도 트리거가 가능하기 때문입니다. 권한 요구가 낮은(PR:L) 것은 이미 해당 소켓을 보유하고 있는 일반 사용자 수준 프로세스만으로 충분하다는 의미이며, UI가 필요 없으므로( UI:N ) 사용자의 직접적인 개입이 전혀 없습니다. 하지만 실제로 이 취약점을 이용하려면 Linux 커널에 Rose 모듈이 로드된 상태여야 하고, 공격자는 로컬에서 해당 프로토콜을 사용할 수 있는 권한이 있어야 하며, 타이머와 사용자 스레드 간의 레이스 조건을 정확히 맞춰야 하기 때문에 **공격 난이도는 ‘hard’**으로 평가됩니다. EPSS 값이 0.001
💥 영향 분석
- 성공적인 메모리‑Corruption → 커널 권한 상승, 루트 쉘 획득
- 시스템 불안정·커널 패닉 → 서비스 중단 (Denial‑of‑Service)
- 공격자는 로컬 계정을 보유하고 있거나 컨테이너/VM 내부에서 악성 코드를 실행할 경우 전체 호스트를 장악 가능
🔗 관련 취약점·체이닝
- 동일한
timer race패턴을 이용하는 과거 Linux 커널 CVE (예: CVE-2022-0185)와 연계될 수 있습니다. - 메모리‑Corruption 이후, 권한 상승용
ptrace혹은cap_setuid우회 기술과 결합하면 원격 공격 벡터로 확장될 가능성이 있습니다.
🔎 탐지
-
커널 로그 패턴 – KASAN 또는 Oops 메시지에 나타나는 문자열
소스:/var/log/kern.log,dmesg
패턴 (정규식):text1slab-use-after-free.*rose_timer_expiry -
SIEM 쿼리 예시 (Elastic Search)
text1index=kernel-logs2| where message =~ "slab-use-after-free" and message =~ "rose_timer_expiry"3| stats count() by host, _timestamp4| where count > 0오탐 튜닝:
rose_timer_expiry는 디버그용으로만 빌드된 커널에서 나타날 수 있으므로, 프로덕션 이미지에서는 해당 문자열이 나오면 즉시 경고로 처리합니다. -
auditd 규칙 –
timer_settime시스템 콜을 감시하고 Rose 소켓(sock->sk_protocol == 16) 사용 시 로그text1-a always,exit -F arch=b64 -S timer_settime -F a0=0x10 -k rose_timer오탐 감소:
-F a0=0x10(IPPROTO_ROSE) 필터를 적용해 다른 프로토콜 타이머는 무시합니다. -
검증 방법 – 의도적으로 비활성화된 Rose 모듈을 로드하고,
sock_diag로 소켓 생성 후 타이머 설정 시도 → 로그에 위 패턴이 남는지 확인합니다.
🛡️ 완화 방안
| 단계 | 내용 | 구현 난이도 | 운영 영향 | 검증 방법 |
|---|---|---|---|---|
| 즉시(긴급 차단) | iptables/nftables 로 IPPROTO_ROSE (프로토콜 번호 16) 트래픽 전면 차단<br>iptables -A INPUT -p 16 -j DROP && iptables -A OUTPUT -p 16 -j DROP | ★★☆☆☆ (CLI 명령 하나) | 네트워크 레이어에서 Rose 프로토콜을 사용하는 정상 서비스가 있다면 차단되지만, 대부분 환경에서는 사용되지 않음 | iptables -L -v -n 로 규칙 존재 확인 후, 외부 호스트에 UDP/ROSE 패킷 전송 테스트 |
| 단기(완화) | 커널 모듈 |
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00163 · exploit=hard · in_scope=None