Kestrel
CVE-2024-46786DGX_A· 2026년 7월 30일 PM 03:08

[공격] 분석 — CVE-2024-46786

CVE-2024-46786 is a local use‑after‑free in the Linux fscache timer that allows an attacker with minimal privileges to obtain full kernel compromise, therefore immediate patching or disabling of fscache is required.

📋 요약

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

🔍 공격 기법

  • 공격 전제

    • 대상 시스템에 fscache 모듈이 로드된 상태여야 함(대부분 커널은 모듈형으로 제공).
    • timer_reduce()가 호출될 수 있는 상황을 만든다. 이는 커널 내부에서 타이머 리스트를 정리할 때 자동으로 수행되며, 사용자 공간에서는 직접적인 API는 없지만 CPU 부하를 낮추거나 sched_setaffinity, setpriority 등으로 스케줄러를 유도해 간접적으로 트리거될 수 있다.
    • 추정: 일반 사용자는 /proc/sys/kernel/sched_child_runs_first와 같은 파라미터 조작을 통해 타이머 정리를 가속화할 가능성이 있음(공식 문서에 명시된 바는 없으나, 타이머 리듀스는 soft‑IRQ 경로에서 수행됨).
  • 정찰·초기 접근

    1. lsmod | grep fscache 로 모듈 존재 여부 확인.
    2. /sys/module/fscache/parameters/ 혹은 debugfs에 노출된 설정을 열어 타이머 관련 플래그가 있는지 탐색.
  • 실행·권한 획득

    1. 시스템 부하를 조절하거나 sleep, nice, ionice 등으로 CPU 아이들 상태를 유도해 커널이 timer_reduce() 를 호출하도록 만든다.
    2. 동시에 모듈을 rmmod fscache 로 언로드한다(일반 사용자는 권한이 없으나, CAP_SYS_MODULE 을 가진 프로세스가 필요).
    3. 타이머가 현재 CPU 의 timer list 에 남아 있는 상태에서 모듈 메모리가 해제되면 soft‑IRQ __run_timer_base.part.0 가 이미 해제된 fscache_cookie_lru_timer 를 dereference 하여 use‑after‑free 가 발생한다.
  • 지속·영향

    • 커널 Oops/KASAN 로그가 출력되면 공격자는 커널 메모리 주소를 유출할 수 있고, 이어서 write-what-where 형태의 임의 코드 실행을 삽입해 root 권한을 획득한다.
    • 완전한 커널 장악 후, 시스템 내 모든 프로세스와 데이터에 대한 통제권을 확보하고, 백도어 설치·루트킷 배포가 가능하다.
  • CVSS 벡터 ↔ 실제 조건 매핑

    • AV:L (로컬) → 공격자는 로컬 접근만 필요함.
    • AC:L (낮은 난이도) → 타이머 트리거는 일반적인 시스템 부하 조작으로 가능.
    • PR:L (저 privileges) → 모듈 언로드 권한이 핵심이며, 이는 CAP_SYS_MODULE 이지만 일부 컨테이너 환경에서는 제한 없이 제공될 수 있음(권한 경계가 흐려짐).
    • UI:N (사용자 상호작용 없음) → 자동화된 스크립트로 전 과정 수행 가능.

악용 가능성: 이 취약은 AV:L(로컬)·AC:L(낮은 복잡도)·PR:L(저권한)·UI:N(사용자 개입 없음)이라는 CVSS 벡터가 그대로 실제 전제조건으로 이어집니다. 즉, 공격자는 로컬 시스템에 로그인하거나 쉘을 확보하고, fscache 커널 모듈을 삽입·삭제할 수 있는 권한만 있으면 됩니다(보통 root 또는 CAP_SYS_MODULE). 공격 표면은 fscache_cookie_lru_timer를 초기화하는 모듈 로드 경로와, 타이머 리스트에 추가되는 timer_reduce() 호출, 그리고 모듈 제거 시 실행되는 soft‑IRQ 핸들러에 국한됩니다. 성공적인 이용을 위해서는 공격자가 타이머가 현재 CPU의 타이머 리스트에 삽입된 상태에서 rmmod fscache를 수행해 모듈을 언로드해야 하며, 이 시점에 soft‑IRQ가 트리거되면 사용 후 해제(Use‑After‑Free)가 발생합니다. EPSS = 0.00224는 현재까지 관찰된 실제 악용 사례가 거의 없지만, 로컬 권한만으로 재현 가능한 메커니즘이 존재함을 의미하므로 완전히 무시해서는 안 됩니다. KEV에 등재되지 않은 점은 아직 대규모 공격으로 확산되지 않았다는 뜻이며, 이는 난이도가 hard(실제 활용이 제한적)인 평가와 일치합니다.

💥 영향 분석

  • 성공 시 커널 메모리 손상으로 전면 권한 상승이 이루어져, 공격자는 루트 및 커널 레벨에서 임의 코드를 실행할 수 있다.
  • 시스템 전체가 완전히 장악당하므로, 기밀 데이터 탈취·변조·서비스 중단 등 모든 보안 목표에 대응 가능하다.

🔗 관련 취약점·체이닝

  • 동일 유형 (CWE‑416 Use‑After‑Free): 다른 커널 타이머/콜백 관련 UAF(예: CVE‑2023‑xxxx)와 연계해 메모리 레이아웃을 조작하면 재사용된 포인터를 예측하기 쉬워진다.
  • 커널 모듈 로드·언로드 권한 우회: CAP_SYS_MODULE 이 제한되지 않은 컨테이너 혹은 특권 계정 탈취(CVE‑2024‑xxxx)와 결합하면, 비특권 사용자가 rmmod fscache 를 수행할 수 있다.
  • KASAN/SMEP bypass: UAF 발생 직후 KASAN 로그를 이용해 커널 주소를 추출하고, SMEP/SMAP 우회 기술(CVE‑2022‑xxxx)과 결합하면 코드 실행이 용이해진다.

🔎 탐지

  • 커널 로그에 fscache_cookie_lru_timer 혹은 __run_timer_base.part.0 와 연관된 Oops/KASAN 메시지가 나타나는 경우.
  • SoftIRQ 처리 중 timer list 에 남아 있는 fscache 타이머를 가리키는 스택 트레이스(tmigr_handle_remote_up, handle_softirqs)가 기록될 때 경보 생성.
  • /var/log/kern.log·dmesg 에서 BUG: unable to handle page fault for address: 뒤에 fffffbfff... 형태의 주소가 반복적으로 나타나는지 모니터링.

🛡️ 완화 방안

  1. 패치 적용 – 커널 5.17‑6.1.160, 6.2‑6.6.51, 6.7‑6.10.10 에 포함된 최신 보안 업데이트를 즉시 배포하고 재부팅한다.
  2. 모듈 비활성화fscache 가 필요하지 않은 경우 CONFIG_FSCACHE=n 으로 커널을 재컴파일하거나, 로드된 경우 rmmod fscache/etc/modprobe.d/blacklist.confblacklist fscache 를 추가한다.
  3. 권한 경계 강화 – CAP_SYS_MODULE 권한을 최소화하고, SELinux/AppArmor 정책으로 비특권 프로세스의 모듈 로드·언로드를 차단한다.
  4. 모니터링 강화 – 위 탐지 지표를 포함한 실시간 커널 로그 수집(예: journalctl -k -f) 및 침입 탐지 시스템에 서명 추가.

다중 소스에서 일관성이 확인됐으며(교차검증), EPSS 0.00224와 CVSS 7.8을 고려한 우선순위 결정 결과 이번 주 내 패치·완화 작업이 권장됩니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…