Kestrel
CVE-2025-22090DGX_2· 2026년 7월 29일 AM 04:03

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

A memory management flaw in the Linux kernel's PAT handling during failed fork() operations can lead to a system crash (DoS), requiring kernel updates to affected versions.

📋 요약

  • 심각도 medium · CVSS 5.5 · EPSS 0.00189 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: fork() 시스템 콜 호출 중 copy_page_range() 내의 track_pfn_copy() 함수가 실패할 때 발생함. 이때 목적지 VMA(Virtual Memory Area)가 이미 maple tree에 추가되었으나, 페이지 테이블 복사가 완료되지 않은 상태에서 untrack_pfn()VM_PAT 플래그를 참조하여 잘못된 메모리 접근을 시도하는 것이 핵심임.

(2) 공격 단계:

  • 정찰: 타겟 시스템의 커널 버전 확인 (Linux 2.6.29 ~ 6.14.2 범위 내).
  • 초기접근: 로컬 사용자 계정 권한 확보 (PR:L 전제).
  • 실행/영향: 메모리 압박(Memory Pressure) 또는 리소스 제한 설정을 통해 fork() 과정 중 특정 지점에서 실패를 유도 $\rightarrow$ 커널의 잘못된 PAT 정보 참조 유발 $\rightarrow$ Kernel Panic 발생.

(3) 공격 표면:

  • 엔드포인트/함수: sys_fork, copy_page_range(), track_pfn_copy(), untrack_pfn().
  • 파라미터: 프로세스 생성 및 메모리 할당 관련 커널 내부 상태.

(4) CVSS 벡터 연결:

  • AV:L: 로컬 접근이 필수적임.
  • AC:L: 트리거 조건(메모리 부족 등)을 만드는 것이 비교적 단순함.
  • PR:L: 일반 사용자 권한만으로 시스템 콜 호출 가능.
  • UI:N: 사용자 상호작용 불필요.

악용 가능성: 본 취약점은 AV:LPR:L 벡터가 나타내듯, 공격자가 이미 시스템에 낮은 권한의 계정으로 접근하여 로컬에서 코드를 실행할 수 있는 환경이 전제되어야 합니다. 공격 표면은 Linux 커널의 메모리 관리 서브시스템 내 copy_page_range() 함수와 fork() 시스템 콜 호출 과정이며, 특히 x86 아키텍처의 PAT(Page Attribute Table) 처리 로직이 트리거 지점입니다. 실제 악용을 위해서는 fork() 과정 중 track_pfn_copy()가 실패하도록 메모리 압박이나 특정 리소스 고갈 상태를 정밀하게 유도해야 하므로 공격 난이도는 Hard로 판정됩니다. EPSS 수치가 0.00189로 매우 낮고 KEV에 등재되지 않은 점은, 이론적인 커널 패닉 가능성과 달리 실전에서 안정적인 권한 상승(LPE)으로 연결된 사례가 드물다는 것을 의미합니다. 하지만 VM_PAT 플래그 처리 오류로 인해 유효하지 않은 페이지 테이블 참조가 발생하므로, 이를 통해 커널 메모리 오염이나 DoS를 유발할 수 있는 잠재적 경로가 존재합니다. 따라서 본 취약점은 단독으로 사용되기보다 다른 메모리 관리 결함과 체이닝하여 커널 주소 공간의 보호 메커니즘을 우회하는 용도로 악용될 가능성이 큽니다.

💥 영향 분석

(1) 기술적 위험: A:H (Availability High). 잘못된 페이지 테이블 참조로 인한 커널 패닉 및 시스템 전체 크래시(Denial of Service)가 발생함. 데이터 유출이나 권한 상승보다는 가용성 파괴에 집중된 취약점임.
(2) 비즈니스 영향: 서버 가동 중단으로 인한 서비스 불능 상태 초래. 특히 멀티테넌트 환경에서 단일 사용자가 시스템 전체를 다운시킬 수 있어 인프라 신뢰도에 치명적임.

🔗 관련 취약점·체이닝

  • 체이닝 경로: 추정: [로컬 권한 획득] $\rightarrow$ [본 CVE를 이용한 DoS] 또는 [추정: 메모리 오염/UAF 유형의 다른 결함] $\rightarrow$ [권한 상승].
  • 분석: 본 취약점 단독으로는 가용성 저해에 그치지만, 커널 내 잘못된 상태 관리(State Management) 결함이므로 추정: Race Condition이나 Use-After-Free와 같은 메모리 관리 취약점과 체이닝될 경우 단순 DoS를 넘어 임의 코드 실행으로 이어질 가능성을 배제할 수 없음.

🔎 탐지

(1) 로그 지표: dmesg 또는 /var/log/syslog에서 untrack_pfn 관련 Kernel Oops, Page Fault, 혹은 PAT 핸들링 실패로 인한 Panic 로그 확인.
(2) 탐지 규칙:

  • 로직: 짧은 시간 내에 다수의 프로세스 생성 시도(fork)와 동시에 메모리 할당 실패(ENOMEM) 및 커널 패닉 로그가 연쇄적으로 발생하는 패턴 감시.
  • 예시: grep -E "untrack_pfn|VM_PAT|copy_page_range" /var/log/kern.log
    (3) 오탐 시나리오: 실제 시스템 리소스 부족으로 인한 정상적인 OOM(Out Of Memory) 킬러 작동이나 일반적인 커널 크래시와 구분 필요. 패닉 발생 직전의 호출 스택(Call Stack)에 copy_page_range가 포함되었는지 확인하여 정밀 탐지 가능.

🛡️ 완화 방안

  • 즉시(긴급 차단): 불필요한 일반 사용자의 프로세스 생성 제한 (ulimit -u 설정). (난이도: 하 / 영향: 낮음 / 검증: ulimit -a)
  • 단기(완화): 시스템 메모리 여유 공간 확보 및 OOM Killer 설정 최적화를 통해 fork() 실패 가능성 최소화. (난이도: 중 / 영향: 성능 가변적 / 검증: 메모리 모니터링)
  • 근본(해결): 취약점이 해결된 커널 버전으로 업데이트 (Linux 6.6.88+, 6.7~6.12.24+, 6.13.12+, 6.14.3+ 등 해당 브랜치 최신 패치 적용). (난이도: 중 / 영향: 재부팅 필요 / 검증: uname -r 확인)

[파이프라인 근거] 본 분석은 다중 소스 데이터의 일관성이 확인된 교차검증 결과를 바탕으로 하며, 실측 EPSS 값(0.00189)과 CVSS 5.5, 로컬 공격 벡터(AV:L)를 종합하여 실제 악용 난이도가 높음(hard)으로 판단되었습니다. 이에 따라 즉각적인 패치보다는 모니터링 중심의 monitor 우선순위가 결정되었습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…