Kestrel
CVE-2025-68814DGX_A· 2026년 8월 1일 AM 12:32

[공격] 분석 — CVE-2025-68814

CVE-2025-68814 is a kernel‑level memory‑leak in io_uring’s __io_openat_prep() that can be abused locally for denial‑of‑service or, by heap‑grooming speculation, as a stepping stone to privilege escalation; immediate mitigation is applying the upstream patch and monitoring abnormal io_uring activity.

📋 요약

  • 심각도 미상 · CVSS 미상 · EPSS 0.00176 · 악용난이도 hard

🔍 공격 기법

  • 트리거 조건

    • 프로세스가 io_uring 인터페이스를 사용하고 IORING_OP_OPENAT(또는 유사 OPEN 계열) 요청을 전송한다.
    • 파일이 고정 파일 테이블에 존재하고 O_CLOEXEC 플래그가 설정된 경우, __io_openat_prep() 내부에서 getname() 호출 후 조기 반환하면서 REQ_F_NEED_CLEANUP 플래그를 누락한다 → struct filename 객체가 슬랩(kmalloc‑96)에 남아 해제되지 않는다.
  • 공격 흐름

    1. 정찰 – 대상 커널이 io_uring을 지원하는지 확인 (cat /proc/sys/kernel/io_uring_enabled, uname -r).
    2. 초기 접근 – 로컬 사용자(비특권) 혹은 컨테이너 내부에서 io_uring_setup()io_uring_register() 로 링버퍼를 확보한다.
    3. 실행·자원 고갈 – 조건을 만족하는 IORING_OP_OPENAT 요청을 고속으로 반복 전송(예: 수천~수만 회/초). 각 호출마다 struct filename이 누적되어 슬랩 캐시를 점진적으로 채운다.
    4. 지속·영향 – 커널 메모리 한계에 도달하면 OOM‑killer가 작동하거나, 슬랩 파편화가 심해 다른 객체(task_struct, cred 등)의 할당 위치가 변형될 수 있다. 이 단계에서 서비스 전체가 응답 불가(DoS) 상태가 된다.
    5. 추정: 메모리 누수로 인한 슬랩 파편화를 이용해 특정 크기의 객체를 의도적으로 배치(Heap Grooming)하면, 이후 공개된 UAF·Infoleak 취약점과 결합해 로컬 권한 상승(LPE)으로 이어질 가능성이 있다. EPSS 0.00176·hard 난이도 평가가 이를 완전히 배제하지는 않는다.
  • 공격 표면

    • 시스템 콜: io_uring_enterIORING_OP_OPENAT 파라미터(filename_ptr, flagsO_CLOEXEC).
    • 노출 경로: 모든 사용자 공간 프로세스가 io_uring을 사용할 수 있는 환경(일반 Linux, 컨테이너, 네임스페이스).
  • CVSS 추정 벡터 (실제 공격 조건 기반)
    AV:L/AC:H/PR:N/UI:N – 로컬 실행, 반복 호출 필요, 권한 없이 가능, 사용자 인터랙션 없음.

악용 가능성: 이 취약점은 CVSS AV가 Local, AC가 High, PR이 None, UI가 None으로 매핑되며, 이는 공격자가 동일 호스트에서 io_uring 인스턴스를 직접 생성하고 특수한 openat 요청을 반복적으로 제출해야 함을 의미합니다. EPSS 0.00176이라는 매우 낮은 실측 확률과 KEV에 등재되지 않은 점은 과거에 실제 악용 사례가 없으며, 공격이 성공할 가능성이 이론적 심각도와는 별개로 현장에서 거의 발생하지 않을 것임을 뒷받침합니다. 노출된 공격 표면은 io_uring 시스템 콜의 __io_openat_prep() 함수이며, 전달되는 파일명 문자열과 O_CLOEXEC 플래그가 조건에 맞을 때 메모리 할당이

💥 영향 분석

  • Denial‑of‑Service: 누적된 struct filename이 슬랩을 포화시켜 커널 메모리 고갈 → 시스템 전체 멈춤 또는 OOM‑killer에 의한 서비스 중단.
  • Heap Grooming 가능성(추정): 파편화된 슬랩 캐시를 이용해 이후의 커널 객체 배치를 조작할 경우, 별도 권한 상승 취약점과 결합해 LPE가 실현될 위험이 존재한다.

🔗 관련 취약점·체이닝

  • 메모리 누수 → 힙 파편화: 동일 계열 메모리 누수(CWE‑401)와 조합 시 슬랩 캐시를 의도적으로 채워 특정 객체(cred, task_struct)의 할당 위치를 제어할 수 있다(추정).
  • Heap Grooming → LPE: 파편화된 슬랩을 이용해 커널 객체를 목표 주소에 배치하고, 이후 공개된 Use‑After‑Free 또는 정보 노출(CVE‑2024‑XXXX 등) 취약점과 연계하면 권한 상승이 가능하다(추정).
  • Infoleak → KASLR 우회: 메모리 레이아웃 정보를 획득하는 다른 취약점과 결합 시, 누수된 주소를 기반으로 커널 베이스를 추정해 공격 성공률을 높일 수 있다(추정).

🔎 탐지

  • 시스템 콜 빈도: io_uring_enter 호출이 비정상적으로 높은 프로세스 감지(예: 1 초당 >10 k 요청).
  • 슬랩 사용량 급증: /proc/slabinfo 또는 perf top에서 kmalloc‑96/filename 캐시 사용량 급등 여부 모니터링.
  • cgroup·seccomp 로그: 제한된 컨테이너에서 io_uring 호출이 발생하면 경보 생성.

🛡️ 완화 방안

  1. 패치 적용 – 커널 소스에 포함된 REQ_F_NEED_CLEANUP 설정 패치를 포함한 최신 Linux kernel 버전으로 즉시 업그레이드(다중 소스 교차 검증 결과 일관).
  2. io_uring 비활성화: 필요 없는 서비스는 sysctl kernel.io_uring_enabled=0 혹은 seccomp‑bpf 로 io_uring_enter 차단.
  3. 리소스 제한: cgroup 또는 systemd Slice 에서 memory.max, cpu.max 등으로 io_uring 요청량을 제한하고, 슬랩 캐시 사용량 알림을 설정.
  4. 모니터링 강화: 위 탐지 지표를 기반으로 실시간 경보 체계 구축 및 정기적인 슬랩 메트릭 리뷰 수행.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…