Kestrel
CVE-2025-21846DGX_1· 2026년 7월 29일 AM 01:56

[방어] 분석 — CVE-2025-21846

A NULL pointer dereference in the Linux kernel's acct(2) system call allows local users to trigger a system crash; immediate mitigation involves restricting access to specific /sys paths or disabling accounting features.

📋 요약

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

🔍 공격 기법

  1. 트리거 조건: acct(2) 시스템 콜을 통해 프로세스 회계 정보를 파일로 기록하도록 설정할 때, 내부 룩업(internal lookup)을 유발하는 특정 경로(예: /sys/power/resume)를 지정하면 발생합니다. 호출 태스크가 종료되어 exit_fs()가 실행된 시점에 쓰기 작업이 수행되면 current->fs 접근 과정에서 NULL dereference가 트리거됩니다.
  2. 공격 단계:
    • 초기 접근: 공격자는 대상 시스템에 일반 사용자 권한(PR:L)으로 로그인해야 합니다.
    • 실행/트리거: acct() 시스템 콜을 호출하여 출력 파일을 /sys/power/resume와 같은 특수 파일로 설정합니다.
    • 영향: 프로세스가 종료되는 시점과 workqueue의 쓰기 작업 타이밍이 겹치면 커널 패닉(Kernel Panic)이 발생하며 시스템이 중단됩니다.
  3. 공격 표면: Linux Kernel acct(2) system call 및 /sys 파일시스템 내 특정 엔드포인트.
  4. CVSS 벡터 연결:
    • AV:L (Local): 시스템에 직접 접근 가능한 로컬 계정이 필요합니다.
    • AC:L (Low): 특수 경로 지정만으로 트리거 가능하여 복잡도가 낮습니다.
    • PR:L (Low): 일반 사용자 권한만으로 실행 가능합니다.
    • UI:N (None): 사용자 상호작용이 필요 없습니다.

악용 가능성: 본 취약점의 공격 난이도는 Hard로 판정됩니다. CVSS 벡터상 AV:LPR:L 조건으로 인해, 공격자는 이미 시스템 내부에 유효한 사용자 계정 권한을 가진 상태에서 로컬 쉘 접근권을 확보해야만 트리거가 가능합니다. 공격 표면은 Linux 커널의 acct(2) 시스템 콜이며, 특히 /sys/power/resume과 같이 내부 lookup을 유발하는 특정 가상 파일 시스템 엔드포인트에 쓰기 작업을 설정하는 것이 핵심 트리거 조건입니다. 프로세스가 exit_fs()를 호출하여 종료되는 시점과 Workqueue의 쓰기 작업 사이의 Race Condition을 이용해 current->fs에 대한 NULL dereference를 유발해야 하므로 정밀한 타이밍 제어가 요구됩니다. EPSS 수치가 0.00222로 매우 낮고 KEV(Known Exploited Vulnerabilities)에 등재되지 않은 점은, 이론적인 커널 패닉 가능성과 달리 실제 야생(In-the-wild)에서 공격 코드가 활발히 유포되거나 악용된 사례가 드물다는 것을 시사합니다. 결과적으로 권한이 낮은 로컬 사용자가 시스템 가용성을 저해하는 DoS를 유발할 수 있는 구조이나, 실행 조건의 특수성으로 인해 실제 악용 가능성은 제한적입니다.

💥 영향 분석

  1. 기술적 위험: 커널 내 NULL pointer dereference로 인한 시스템 크래시(DoS). 데이터 유출이나 권한 상승보다는 가용성 파괴에 집중된 취약점입니다.
  2. 비즈니스 영향: 서버의 갑작스러운 재부팅 및 서비스 중단으로 인한 비즈니스 연속성 저해. 특히 다중 사용자가 공유하는 Linux 서버 환경에서 단일 사용자가 전체 시스템을 다운시킬 수 있는 리스크가 있습니다.

🔗 관련 취약점·체이닝

  • 추정: 본 취약점은 가용성을 파괴하는 DoS 유형입니다. 단독으로는 권한 상승이 어렵지만, 특정 커널 메모리 레이아웃을 조작할 수 있는 다른 정보 유출(Information Leak) 취약점과 체이닝될 경우, 추정: 단순 크래시를 넘어 제어 흐름 변경으로 이어질 가능성을 배제할 수 없으나 현재 근거는 부족합니다.

🔎 탐지

  1. 로그 지표:
    • /var/log/syslog 또는 dmesgNULL pointer dereferenceacct 관련 커널 스택 트레이스(Kernel Stack Trace).
    • RIP: [address]acct 관련 함수를 가리키는 Kernel Panic 로그.
  2. 탐지 규칙:
    • Rule 1 (Syscall Monitoring): auditd 또는 eBPF를 사용하여 acct 시스템 콜의 인자 중 /sys/ 경로가 포함된 호출을 모니터링합니다.
      • Logic: if (syscall == "acct" && args[0] contains "/sys/") -> Alert
    • Rule 2 (SIEM Query): 커널 로그에서 특정 패턴 탐지.
      • Query: index=linux_logs message="*NULL pointer dereference*" AND message="*acct*"
  3. 오탐 튜닝: 정상적인 시스템 관리 도구가 acct를 사용하는지 확인하십시오. 일반적인 사용자 프로세스가 /sys/power/resume와 같은 경로에 대해 acct 설정을 시도하는 것은 매우 이례적이므로, 해당 패턴은 정탐일 확률이 높습니다.

🛡️ 완화 방안

  • 즉시(긴급 차단):
    • 조치: /sys/power/resume 등 취약점이 보고된 특정 경로에 대한 일반 사용자의 쓰기 권한을 엄격히 제한하거나, chmod를 통해 접근 제어를 강화합니다.
    • 난이도/영향: 낮음 / 매우 낮음 (특수 파일 접근만 차단).
    • 검증: 일반 사용자 계정으로 해당 경로에 대한 쓰기 시도 시 Permission denied 확인.
  • 단기(완화):
    • 조치: seccomp 프로필을 적용하여 신뢰할 수 없는 프로세스의 acct 시스템 콜 호출을 차단합니다.
    • 난이도/영향: 중간 / 낮음 (일부 레거시 회계 도구 작동 불가 가능성).
    • 검증: strace를 통해 acct 호출 시 EPERM 또는 SIGSYS 발생 확인.
  • 근본(해결):
    • 조치: 영향받는 커널 버전(2.6.12 ~ 6.13.5 등)에서 패치가 적용된 최신 커널로 업데이트합니다. (최종 쓰기 작업이 caller의 credentials를 유지한 채 workqueue에서 수행되도록 수정된 버전).
    • 난이도/영향: 중간 / 중간 (커널 업데이트 후 리부팅 필요, 가용성 일시 중단).
    • 검증: uname -r로 패치 버전 적용 확인 및 PoC 시나리오 재현 불가 확인.

[파이프라인 근거] 본 분석은 다중 소스 데이터의 일관성이 확인된 결과(신뢰도 1.0)를 바탕으로 작성되었습니다. 특히 EPSS 수치가 0.00222로 매우 낮고, 악용 등급이 hard이며 KEV에 등재되지 않은 점을 근거로 우선순위를 'monitor'로 결정하였습니다. 이는 이론적 심각도(CVSS 5.5)보다 실제 야생에서의 악용 가능성이 현저히 낮음을 의미합니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…