[공격] 분석 — CVE-2026-31521
CVE-2026-31521 allows a local attacker to trigger out‑of‑bounds section index handling in the Linux kernel module loader, leading to kernel panic or memory corruption that can be chained to local privilege escalation; immediate patching and strict unsigned‑module controls are required.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00125 · 악용난이도 hard
🔍 공격 기법
- 트리거 조건
init_module(또는finit_module) 시스템 콜을 이용해 커널에 모듈을 로드한다.- ELF 심볼 테이블(
.symtab)에st_shndx값이0xffff(SHN_XINDEX/SHN_HIRESERVE)인 엔트리를 포함시킨다.
- 공격 표면
- 모듈 로더 →
simplify_symbols()함수 내부 루프 (sym[i].st_shndx) - 파라미터: ELF 파일 자체, 특히 심볼 섹션 인덱스 필드.
- 모듈 로더 →
- 단계 흐름
- 정찰 – 시스템이 모듈 로드를 허용하는지 확인(예:
/proc/sys/kernel/modules_disabled값,CAP_SYS_MODULE보유 여부). - 초기 접근 – 일반 사용자 권한(Low)으로
init_module호출 가능하면 바로 진행, 아니면 권한 상승(다른 취약점) 후 시도. - 실행·권한 획득 – 커널이 심볼 인덱스를 검증하지 않음 →
info->sechdrs[sym[i].st_shndx]접근시 페이지 폴트 발생 → BUG 처리 → 커널 패닉. - 지속 – 시스템 재부팅 전까지 서비스 불가(DoS). 지속성을 위한 추가 단계는 별도 필요.
- 영향 – 전체 호스트 가용성 상실, 서비스 거부.
- 정찰 – 시스템이 모듈 로드를 허용하는지 확인(예:
- CVSS 벡터와 실제 조건 연결
- AV:L (Local) → 로컬 모듈 로드가 전제조건.
- AC:L (Low) → 복잡도 낮음, 특수한 파일 포맷만 조작하면 됨.
- PR:L (Low) → 일반 사용자 권한으로 가능(시스템 설정에 따라).
- UI:N (None) → 자동화된 스크립트로 실행 가능.
악용 가능성: AV:L·AC:L·PR:L·UI:N 벡터는 공격자가 로컬에서 특수히 조작된 ELF 모듈을 커널에 삽입하기만 하면 된다는 의미이며, 복잡한 사전 준비 없이도 낮은 권한(예: CAP_SYS_MODULE을 보유한 일반 사용자)으로 실행될 수 있음을 나타냅니다. EPSS 0.00125는 실제 악용 사례가 매우 드물지만 완전히 배제되지는 않으며, KEV에 등재되지 않은 점은 현재까지 활발히 관측된 위협이 아니라는 추가적인 근거가 됩니다. 취약은 simplify_symbols() 함수에서 심볼 섹션 인덱스를 검증하지 않아 st_shndx 값이 0xffff와 같이 범위를 초과하면 잘못된 주소(info->sechdrs[…])를 참조하게 되는 점에 있습니다. 공격 표면은 커널 모듈 로더가 사용하는 init_module()·finit_module() 시스템 콜 및 /proc/sys/kernel/modprobe 경로이며, 이들 엔드포인트에 악의적인 ELF 파일을 전달하면 트리거됩니다. 따라서 실제 공격 흐름은 (1) 로컬 권한 획득 → (2) CAP_SYS_MODULE이 부여된 환경 확보 → (3) 조작된 모듈 삽입 → (4) 커널 패닉 혹은 임의 코드 실행으로 이어지는 단계로 구성됩니다. 이러한 조건이 충족될 경우 난이도는 “hard”이라 평가되지만, 권한 상승 전제와 로컬 접근이라는 제약 때문에 실전에서 악용 가능성은 제한적이라고
💥 영향 분석
- 성공 시 커널 패닉이 발생해 시스템 전체가 멈추고 재부팅이 필요함.
- 서비스 가용성 전면 차단(Denial‑of‑Service).
- 데이터 손실 위험은 낮지만, 복구 과정에서 파일시스템 검사·복구가 요구될 수 있음.
🔗 관련 취약점·체이닝
- CWE‑787 (Out‑of‑Bounds Write/Read) –
st_shndx값 검증 부재로 인한 메모리 접근 오류. - 추정: 동일 커널 모듈 로더와 ELF 파싱 과정에 존재하는 다른 경계 검사 누락(CWE‑125)과 결합하면, 악의적인 심볼 조작을 이용해 권한 상승(RCE)까지 이어질 가능성이 있음.
- 패턴: 정보 노출(모듈 로드 허용 여부) → 메모리 오염(경계 검증 부재) → 서비스 거부(Denial‑of‑Service).
🔎 탐지
- 커널 로그에
BUG: unable to handle page fault for address혹은simplify_symbols+0x와 같은 스택 트레이스가 기록될 경우. auditd또는eBPF기반 모듈 로드 이벤트(module_load)와 함께 비정상적인 ELF 섹션 인덱스 값(>info->hdr.sh_num)을 검사하는 규칙 적용.
🛡️ 완화 방안
- 패치 적용 – 상위 커널 버전(2.6.12.1 ~ 6.19.11)에서 제공된 최신 패치를 즉시 배포한다.
- 모듈 로드 제한
/proc/sys/kernel/modules_disabled를1로 설정해 동적 모듈 로드를 차단하거나, 신뢰된 서명된 모듈만 허용하도록CONFIG_MODULE_SIG옵션을 활성화한다.CAP_SYS_MODULE권한을 최소 사용자에게 부여하지 않는다.
- 모니터링 강화 – 위 탐지 지표를 이용해 실시간 알림 설정 및 로그 보관 기간 연장.
- 보안 정책 적용 – SELinux/AppArmor 프로파일에
init_module호출 제한 규칙을 추가한다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00125 · exploit=hard · in_scope=None