[분석가] 분석 — CVE-2025-21846
A NULL pointer dereference vulnerability in the Linux kernel's acct(2) system call allows a local user to cause a system crash; upgrading to the patched kernel version is the primary remediation.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00222 · 악용난이도 hard
🔍 공격 기법
- 트리거 조건:
acct(2)시스템 콜을 사용하여 프로세스 회계 정보를 파일에 기록하도록 설정할 때,/sys/power/resume과 같이 내부 룩업(internal lookup)을 유발하는 특수 경로를 지정하면 발생합니다. - 공격 단계:
- 초기 접근: 공격자가 대상 시스템에 일반 사용자 권한(
PR:L)으로 로그인하여 로컬 쉘을 확보합니다. - 실행:
acct(2)시스템 콜을 호출하여 특정 파일 경로로 기록하도록 설정합니다. - 트리거: 프로세스가 종료되면서
exit_fs()가 호출되어current->fs가 해제된 시점에, 워크큐(workqueue)에서 마지막 쓰기 작업이 수행되며 NULL 포인터를 참조(NULL deref)하게 됩니다. - 영향: 커널 패닉(Kernel Panic)으로 인한 시스템 중단이 발생합니다.
- 초기 접근: 공격자가 대상 시스템에 일반 사용자 권한(
- 공격 표면:
acct(2)시스템 콜 인터페이스 및/sys하위의 특정 가상 파일 경로. - CVSS 벡터 분석:
AV:L: 로컬 접근 권한이 필요합니다.AC:L: 공격 조건이 단순하여 복잡성이 낮습니다.PR:L: 낮은 수준의 사용자 권한만으로 실행 가능합니다.UI:N: 사용자 상호작용이 불필요합니다.
악용 가능성: 본 취약점은 공격 난이도가 Hard로 분류되며, 실제 악용 가능성은 매우 낮습니다. CVSS 벡터상 AV:L 및 PR:L 조건에 따라 공격자는 시스템에 이미 로그인한 저권한 계정 권한을 보유해야 하며, 이는 원격 공격이 불가능함을 의미합니다. 공격 표면은 Linux 커널의 acct(2) system call이며, /sys/power/resume과 같이 내부 lookup을 유발하는 특정 파일 경로를 지정하여 NULL dereference를 트리거하는 구조입니다. 다만, EPSS 수치가 0.00222로 매우 낮고 KEV에 등재되지 않은 점은 실제 야생(In-the-wild)에서 해당 시나리오가 공격에 활용된 사례가 거의 없음을 뒷받침합니다. 결과적으로 이론적인 커널 크래시 가능성은 존재하나, 특정 파일 경로 설정과 프로세스 종료 타이밍이 맞물려야 하는 트리거 조건으로 인해 실제 악용 난이도는 매우 높습니다.
💥 영향 분석
- 기술적 위험:
- 서비스 중단(DoS): 커널 내 NULL 포인터 참조로 인해 시스템이 즉시 크래시되어 가용성이 완전히 상실됩니다(
A:H). - 데이터 유출이나 권한 상승에 대한 근거는 확인되지 않았습니다.
- 서비스 중단(DoS): 커널 내 NULL 포인터 참조로 인해 시스템이 즉시 크래시되어 가용성이 완전히 상실됩니다(
- 비즈니스 영향:
- 서비스 가용성 저하: 서버가 다운될 경우 서비스 중단으로 인한 비즈니스 연속성 손실이 발생합니다.
- 노출 규모: Linux 커널의 광범위한 버전(2.6.12 ~ 6.13.5 일부)이 영향 범위에 포함되어 있어, 구형 시스템부터 최신 배포판까지 잠재적 위험이 존재합니다.
🔗 관련 취약점·체이닝
- 추정: 본 취약점은 단독으로 사용될 경우 가용성 저하(DoS)에 그치지만, 다른 커널 메모리 오염 취약점과 체이닝될 경우 시스템 상태를 불안정하게 만들어 특정 레이스 컨디션(Race Condition)을 유도하는 보조 수단으로 활용될 가능성이 있습니다.
- 패턴:
Local Privilege Escalation시도 중 실패 시 시스템을 크래시시키거나, 특정 커널 객체의 생명주기를 조작하는 패턴과 유사합니다.
🔎 탐지
- 로그 지표:
- 커널 로그(
dmesg,/var/log/syslog) 내NULL pointer dereference및acct관련 스택 트레이스(Stack Trace) 확인.
- 커널 로그(
- 탐지 규칙 예시:
- 로직: 시스템 콜 모니터링 도구(eBPF, Auditd)를 통해
acct()호출 시 인자로/sys/power/resume또는 유사한 특수 경로가 전달되는지 감시. - 의사코드:
IF syscall == 'acct' AND argument_path MATCHES '/sys/.*' THEN alert("Potential CVE-2025-21846 trigger")
- 로직: 시스템 콜 모니터링 도구(eBPF, Auditd)를 통해
- 오탐 시나리오 및 튜닝:
- 정당한 시스템 관리 도구가 회계 기능을 사용할 때 오탐이 발생할 수 있습니다. 신뢰할 수 있는 바이너리(화이트리스트)에서 발생하는 호출은 제외하도록 튜닝합니다.
🛡️ 완화 방안
- 즉시(긴급 차단):
acct시스템 콜 사용을 제한하거나, 일반 사용자의/sys경로 접근 권한을 엄격히 통제하는 ACL 설정을 적용합니다. (난이도: 하 / 영향: 낮음 / 검증:ls -l /sys/power/resume)
- 단기(완화):
- 불필요한 프로세스 회계 기능을 비활성화하여 공격 표면을 줄입니다. (난이도: 하 / 영향: 기능 제한 / 검증: 설정 확인)
- 근본(해결):
- 영향을 받는 커널 버전에서 수정된 최신 버전으로 업데이트합니다. (예: Linux kernel 6.1.130+, 6.6.80+, 6.12.17+, 6.13.5+ 등 해당 브랜치의 패치 버전).
- 근거: 다중 소스 교차검증을 통해 일관성이 확인되었으며, EPSS 수치가 0.00222로 낮고 실측 악용 사례가 미관측된
hard등급의 취약점이므로, 규칙 기반 우선순위에 따라 즉각적인 패치보다는 monitor(모니터링) 수준에서 관리하며 정기 업데이트 주기에 맞추어 적용할 것을 권고합니다. (난이도: 중 / 영향: 재부팅 필요 / 검증:uname -r)
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00222 · exploit=hard · in_scope=None