Kestrel
CVE-2025-21867DGX_3· 2026년 7월 29일 AM 02:21

[분석가] 분석 — CVE-2025-21867

A Use-After-Free vulnerability in the Linux kernel's BPF test_run functionality allows local users to cause memory corruption; restricting unprivileged BPF access is the primary immediate mitigation.

📋 요약

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

🔍 공격 기법

  1. 트리거 조건: bpf_prog_test_run_xdp() 함수가 bpf_test_init()user_data 인자로 Ethernet 헤더 길이(ETH_HLEN)보다 작은 유효하지 않은 값을 전달할 때 발생합니다. 이로 인해 eth_skb_pkt_type()이 Ethernet 헤더가 포함되지 않은 skb 데이터에 접근하며 Use-After-Free(UAF)가 트리거됩니다.
  2. 공격 단계:
    • 초기접근: 로컬 시스템의 일반 사용자 권한 획득 (전제조건: PR:L).
    • 실행: BPF 시스템 콜을 통해 bpf_prog_test_run 기능을 호출하며, 의도적으로 짧은 길이의 user_data를 주입합니다.
    • 영향: 커널 메모리 오염(Memory Corruption) 유발 및 추정: 권한 상승 또는 커널 패닉으로 인한 서비스 거부.
  3. 공격 표면: Linux Kernel BPF subsystem, 특히 bpf_prog_test_run 관련 시스템 콜 인터페이스.
  4. CVSS 벡터 분석:
    • AV:L: 로컬 접근이 필요하므로 원격 공격은 불가능합니다.
    • AC:L: 특수한 환경 설정 없이 입력값 조작만으로 트리거 가능합니다.
    • PR:L: 낮은 수준의 권한(Low privilege)이 필요합니다.
    • UI:N: 사용자 상호작용이 필요 없습니다.

악용 가능성: 본 취약점은 Linux kernel의 bpf_prog_test_run_xdp() 함수 호출 시, user_data 인자로 Ethernet header 길이(ETH_HLEN)보다 작은 유효하지 않은 값을 전달할 때 발생하는 Use-After-Free(UAF) 결함입니다. 공격 표면은 BPF(Berkeley Packet Filter) 테스트 인터페이스이며, 구체적으로는 커널 내부의 bpf_test_init()eth_skb_pkt_type() 함수가 처리하는 파라미터 영역에 국한됩니다. CVSS 벡터상 AV:LPR:L 조건이 적용되어, 공격자는 시스템에 이미 로그인하여 BPF 프로그램을 실행할 수 있는 낮은 수준의 권한을 가진 로컬 계정을 보유해야 합니다. EPSS 수치가 0.00181로 매우 낮고 KEV(Known Exploited Vulnerabilities)에 등재되지 않은 점은 현재 야생에서 실제 악용 사례가 관측되지 않았음을 시사합니다. 따라서 이론적인 심각도와 달리, 로컬 권한 확보라는 전제 조건과 특정 BPF 테스트 경로를 트리거해야 한다는 제약으로 인해 공격 난이도는 hard로 판단됩니다. 결과적으로 본 취약점의 악용 가능성은 낮으나, 로컬 권한 상승(LPE)을 시도하는 정교한 공격자에게는 잠재적인 벡터가 될 수 있습니다.

💥 영향 분석

  1. 기술적 위험:
    • Memory Corruption: UAF 결함으로 인해 커널 메모리 무결성이 파괴됩니다.
    • 시스템 장악/중단: 추정: 공격자가 정교하게 조작된 페이로드를 사용할 경우 권한 상승(Privilege Escalation)을 통해 루트 권한을 획득하거나, 커널 패닉을 유도하여 시스템 전체를 중단(DoS)시킬 수 있습니다.
  2. 비즈니스 영향:
    • 가용성 저하: 서버 커널 크래시 발생 시 서비스 중단으로 이어집니다.
    • 데이터 무결성 위협: 권한 상승 성공 시 시스템 내 모든 데이터에 대한 접근 및 수정 권한이 탈취될 수 있습니다.

🔗 관련 취약점·체이닝

  • 체이닝 패턴: 추정: Information Leak(커널 주소 유출) $\rightarrow$ Memory Corruption(본 CVE의 UAF) $\rightarrow$ Privilege Escalation(권한 상승) 순으로 이어지는 전형적인 커널 익스플로잇 체인이 가능할 것으로 보입니다.
  • 유형: CWE-416 (Use-After-Free) 및 Memory Corruption 계열의 취약점입니다.

🔎 탐지

  1. 로그 지표:
    • dmesg 또는 /var/log/syslogKMSAN: use-after-free in eth_skb_pkt_type 또는 BUG: KMSAN 관련 커널 로그 발생 여부 확인.
  2. 탐지 규칙 예시:
    • 로직: 시스템 콜 모니터링 도구(eBPF, Auditd 등)를 통해 bpf() 시스템 콜 중 BPF_PROG_TEST_RUN 명령이 빈번하게 호출되거나 비정상적인 인자값이 전달되는 패턴 감시.
    • 의사코드: IF syscall == bpf AND cmd == BPF_PROG_TEST_RUN AND user_data_len < 14 THEN ALERT("Potential CVE-2025-21867 trigger")
  3. 오탐 시나리오 및 튜닝:
    • 시나리오: 합법적인 BPF 성능 테스트 도구나 커널 디버깅 툴이 유사한 패턴을 생성할 수 있습니다.
    • 튜닝: 신뢰할 수 있는 관리자 계정이나 특정 개발 서버의 화이트리스트 IP/PID를 제외하여 오탐을 줄입니다.

🛡️ 완화 방안

  1. 즉시(긴급 차단):
    • 조치: 비특권 사용자의 BPF 접근 제한 (sysctl -w kernel.unprivileged_bpf_disabled=1).
    • 영향: 구현 난이도 낮음 / 운영 영향 높음 (BPF 기반 모니터링/네트워킹 툴 작동 중단 가능) / 검증: sysctl 값 확인.
  2. 단기(완화):
    • 조치: BPF 관련 테스트 기능을 사용하는 애플리케이션의 실행 권한을 제한하고, 커널 메모리 보호 옵션(KASLR 등) 활성화 상태 확인.
    • 영향: 구현 난이도 보통 / 운영 영향 낮음 / 검증: /proc/sys/kernel/randomize_va_space 확인.
  3. 근본(해결):
    • 조치: 영향받는 버전의 Linux 커널을 패치가 적용된 최신 버전으로 업데이트 (예: bpf_test_init()user_data < ETH_HLEN 체크 로직이 추가된 버전).
    • 영향: 구현 난이도 보통 / 운영 영향 높음 (재부팅 필요) / 검증: uname -r을 통한 커널 버전 확인.

[파이프라인 근거] 본 리포트는 다중 소스에서 일관성이 확인된 데이터를 바탕으로 작성되었습니다. 실제 악용 가능성은 EPSS 0.00181(백분위 0.07991)로 매우 낮게 측정되며, 공격 난이도가 hard이고 KEV에 등재되지 않은 점을 근거로 우선순위를 scheduled(이번 주 내 대응)로 결정하였습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…