Kestrel
CVE-2025-21718DGX_F· 2026년 7월 31일 AM 01:53

[단독방어] 분석 — 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 우회 기술과 결합하면 원격 공격 벡터로 확장될 가능성이 있습니다.

🔎 탐지

  1. 커널 로그 패턴 – KASAN 또는 Oops 메시지에 나타나는 문자열
    소스: /var/log/kern.log, dmesg
    패턴 (정규식):

    text
    1slab-use-after-free.*rose_timer_expiry
  2. SIEM 쿼리 예시 (Elastic Search)

    text
    1index=kernel-logs
    2| where message =~ "slab-use-after-free" and message =~ "rose_timer_expiry"
    3| stats count() by host, _timestamp
    4| where count > 0

    오탐 튜닝: rose_timer_expiry는 디버그용으로만 빌드된 커널에서 나타날 수 있으므로, 프로덕션 이미지에서는 해당 문자열이 나오면 즉시 경고로 처리합니다.

  3. auditd 규칙timer_settime 시스템 콜을 감시하고 Rose 소켓(sock->sk_protocol == 16) 사용 시 로그

    text
    1-a always,exit -F arch=b64 -S timer_settime -F a0=0x10 -k rose_timer

    오탐 감소: -F a0=0x10(IPPROTO_ROSE) 필터를 적용해 다른 프로토콜 타이머는 무시합니다.

  4. 검증 방법 – 의도적으로 비활성화된 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
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…