[공격] 분석 — CVE-2026-31452
A local low‑privilege attacker can trigger a kernel panic on vulnerable Linux kernels by truncating an ext4 inline‑data file beyond its inline capacity, so immediate kernel patching or disabling inline data is required.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00135 · 악용난이도 hard
🔍 공격 기법
-
공격 전제
- 대상 시스템이 ext4 파일시스템을 사용하고, 커널 버전이 3.8‑6.19.11 사이이며 패치가 적용되지 않은 경우.
- 로컬 사용자(일반 권한 혹은 제한된 서비스 계정)에게
truncate(),sendfile()또는 유사 파일 조작 API 호출 권한이 있음.
-
공격 표면
- 시스템 콜 인터페이스:
truncate(path, new_len)→ext4_setattr()→ inline‑flag 검사 부재. - 이후
write()/sendfile()가ext4_write_inline_data()로 전달돼BUG_ON(write_size > inline_capacity)발생.
- 시스템 콜 인터페이스:
-
단계별 흐름
- 정찰 –
/proc/mounts또는statfs()로 ext4 마운트 확인, 작은 파일(≤ ~150 B) 존재 여부 파악. - 초기 접근 – 임의 파일 생성(
touch smallfile) → 파일이 inline 데이터 영역에 저장됐는지statx(..., STATX_INLINE)로 검증. - 트리거 –
truncate(smallfile, 50*1024*1024)로 파일 크기를 크게 늘림(버그가 있는 코드 경로 진입). - 실행·크래시 – 동일 프로세스 또는 다른 프로세스가 해당 파일에
sendfile()/write()수행 →ext4_write_inline_data()에서BUG_ON발생, 커널 OOPS 및 시스템 다운.
- 정찰 –
-
CVSS 벡터와 실제 조건 매핑
- AV:L (로컬) – 위 단계는 로컬 시스템 콜 호출만 필요.
- AC:L (낮은 난이도) – 파일 생성·truncate만으로 충분, 특별한 권한 상승 없이 재현 가능.
- PR:L (저권한) – 일반 사용자 계정에서도 실행 가능(파일 소유자라면).
- UI:N (사용자 입력 없음) – 자동화 스크립트로 전파 가능.
악용 가능성: 이 취약점은 AV:L(로컬)·AC:L(낮은 복잡도)·PR:L(저권한)·UI:N(사용자 개입 없음) CVSS 벡터가 의미하듯, 공격자는 로컬에서 일반 사용자 권한만으로 시스템 콜 truncate()와 sendfile()을 연속 호출하면 됩니다. 그러나 실제로 악용하려면 ext4 파일시스템에 인라인 데이터 플래그가 설정된 작은 크기의 inode가 존재하고, 해당 파일을 50 MB 이상으로 확장하는 truncate()를 수행해야 하는 특수한 전제조건이 필요하므로 공격 난이도는 “hard”로 평가됩니다. EPSS 0.00135라는 수치는 현재까지 관찰된 실제 악용 사례가 매우 드물지만, 완전히 배제되지 않은 위험성을 보여줍니다(KEV에 등재되지 않아 대규모 위협으로 분류되지는 않음). 공격 표면은 로컬 파일시스템 인터페이스와 ext4_setattr(), ext4_write_inline_data() 함수이며, 이들 함수는 커널 모드에서 직접 호출되는 시스템 콜을 통해 노출됩니다. 따라서 초기 정찰 단계에서는 해당 inode가 인라인 플래그를 가지고 있는지 확인하고, 이후 truncate() 와 sendfile() 시퀀스를 조합해 파일 크기를 초과시키면 BUG_ON이 발생하여 커널 패닉을 일으킬 수 있습니다. 이러한 흐름은 별도의 원격 접근이나 권한 상승 없이도 로컬에서 서비스 거부(DoS) 효과를 낼 수 있다는 점이 핵심입니다.
💥 영향 분석
- 성공 시 커널 패닉이 발생해 시스템 전체가 다운되며, 서비스 중단(DDoS 효과) 및 메모리 덤프에 민감 정보 노출 위험이 존재함.
- 파일 시스템 일관성 파괴 → 재부팅 후 파일 손상 가능성(복구 어려움).
🔗 관련 취약점·체이닝
- CWE‑122 (Heap‑Based Buffer Overflow) 및 CWE‑124 (Buffer Under-read) 와 유사하게, 경계 검증 부재가 커널 내부 데이터 구조를 오염시킴.
- 추정: 동일 파일 시스템 메타데이터 조작 결함(CWE‑131)과 연계하면, 권한 상승(예:
CWE‑264→ 특권 프로세스에 대한 DoS) 또는 임의 코드 실행(CWE‑190) 가능성이 이론적으로 존재. - 실제 체이닝 예시:
- 파일 시스템 메타데이터 손상 → 커널 OOPS → 재부팅 후
initrd혹은 부트 파라미터 조작 기회 제공 → 권한 상승 또는 지속성 확보.
- 파일 시스템 메타데이터 손상 → 커널 OOPS → 재부팅 후
🔎 탐지
- 커널 로그(
dmesg,/var/log/kern.log)에 “BUG: unable to handle kernel panic” 및ext4_write_inline_data()관련 스택 트레이스가 반복적으로 기록되는 경우. - OOPS 카운터 증가 감시 (
/proc/sys/kernel/printk_oops등). - 파일 시스템 모니터링 도구에서 동일 inode에 대한 급격한 크기 변동(
inotifywait -e modify) 로그와 결합된 크래시 이벤트.
🛡️ 완화 방안
- 즉시: 배포판 제공 패치를 적용하거나, 커널 6.19.12 이상(또는 해당 버전대의 최신 업데이트)으로 업그레이드.
- 임시 회피: ext4 마운트 옵션에
inline_data기능을 비활성화(mount -o noinline_data)하거나, 파일 생성 시-T largefile등으로 inline 저장을 방지. - 권한 제한: 일반 사용자에게
truncate()·sendfile()호출을 제한하는 AppArmor/SELinux 정책 적용. - 장기: 커널 소스 레벨에서
ext4_setattr()의 크기 검증 로직이 포함된 최신 코드를 유지하고, 파일 시스템 무결성 검사(fsck.ext4)를 정기적으로 수행.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00135 · exploit=hard · in_scope=None