[공격] 분석 — CVE-2026-43025
A local slab-out-of-bounds read in netfilter's ctnetlink allows attackers with CAP_NET_ADMIN to leak kernel pointers, serving as a critical KASLR bypass primitive for subsequent privilege escalation.
📋 요약
- 심각도 high · CVSS 7.3 · EPSS 0.00126 · 악용난이도 hard
🔍 공격 기법
본 취약점은 netfilter의 ctnetlink 인터페이스가 유저스페이스에서 제공하는 명시적 helper 설정을 무분별하게 수용하여 발생하는 slab-out-of-bounds Read 결함이다.
-
공격 표면 (Attack Surface):
- 엔드포인트: Netlink 소켓 (
NETLINK_NETFILTER) - 핵심 파라미터:
CTA_EXPECT_CLASS및CTA_EXPECT_HELP_NAME - 취약 경로:
ctnetlink_new_expect()$\rightarrow$ctnetlink_create_expect()$\rightarrow$nf_ct_expect_related_report()(OOB Read 발생 지점)
- 엔드포인트: Netlink 소켓 (
-
공격 체인 및 트리거 조건:
- 초기 접근 및 전제 조건: 로컬 계정 접근이 필수적이며, 특히
NETLINK_NETFILTER소켓을 생성하고 메시지를 송신하기 위한CAP_NET_ADMIN권한 확보가 실질적인 공격 가능 여부를 결정하는 핵심 분기점이다. (단순 Low Privilege보다 높은 권한 요구됨) - 정찰: 현재 커널의 conntrack helper 상태를 확인하고, 마스터 헬퍼와 상충하는 임의의 helper 이름을 준비한다.
- 트리거 (Execution): 유저스페이스에서
ctnetlink요청 시, 기존 마스터 헬퍼가 아닌 비정상적인 명시적 helper를 지정하여 전송한다. - 결함 발생: 커널이 유효성 검증 과정에서 유저가 제공한 잘못된 helper 정보를 기반으로 메모리를 참조하며,
nf_ct_expect_related_report함수 내에서 expectation 경계를 넘어선 slab 메모리 바이트를 읽는다.
- 초기 접근 및 전제 조건: 로컬 계정 접근이 필수적이며, 특히
-
실전 관점의 제약:
- CVSS 벡터(
AV:L/AC:L/PR:L)상 로컬 권한이 필요하며, 실제로는CAP_NET_ADMIN이라는 구체적인 권한이 전제되어야 한다. - 다중 소스 교차검증 결과 데이터 일관성이 확인되었으나, 실측 EPSS 수치가 $0.00126$ (백분위 $0.02656$)로 매우 낮다. 이는 야생에서 단독으로 악용된 사례가 거의 없으며, 정밀한 메모리 레이아웃 제어가 필요한 'Hard' 난이도의 취약점임을 뜻한다. 따라서 규칙 기반 우선순위를
scheduled로 결정하였다.
- CVSS 벡터(
악용 가능성: 본 취약점은 AV:L 및 PR:L 조건에 따라 공격자가 이미 시스템에 낮은 권한의 계정으로 접근해 있어야 하는 Local Privilege Escalation(LPE) 경로를 가집니다. 공격 표면은 Linux 커널의 netfilter 서브시스템 내 ctnetlink 인터페이스이며, 구체적으로는 유저스페이스에서 Netlink 소켓을 통해 전달하는 CTA_EXPECT_CLASS 파라미터와 헬퍼 설정값이 트리거 포인트가 됩니다. 공격자는 특수하게 조작된 Netlink 메시지를 전송하여 커널 내 nf_ct_expect_related_report 함수에서 slab-out-of-bounds 읽기를 유도할 수 있습니다. EPSS 수치가 0.00126으로 매우 낮고 KEV에 등재되지 않은 점은, 이 취약점이 단독으로 원격에서 실행되거나 즉각적인 무기화가 이루어지기 어려운 구조임을 시사합니다. 하지만 커널 메모리 누수(Information Leak)를 유발할 수 있는 특성상, ASLR 우회나 다른 메모리 손상 취약점과 체이닝될 경우 권한 상승의 핵심 징검다리로 악용될 가능성이 있습니다. 결과적으로 공격 난이도는 hard 수준이나, 내부 침투 후 커널 권한을 획득하려는 고도화된 공격자에게는 유효한 타깃이 됩니다.
💥 영향 분석
- KASLR 우회 (Information Leak): Slab 영역의 Out-of-bounds Read를 통해 커널 내부 포인터 및 구조체 주소를 유출할 수 있으며, 이는 KASLR을 무력화하는 핵심 징검다리가 된다.
- 시스템 가용성 저해: 잘못된 메모리 참조로 인한
Kernel Panic또는Oops유발 가능성이 있다.
🔗 관련 취약점·체이닝
본 결함은 단독으로 권한 상승을 일으키기보다, 다른 Memory Corruption 취약점의 성공률을 극대화하는 '정찰 및 준비' 단계의 프리미티브로 활용된다.
- KASLR 우회 $\rightarrow$ LPE 체인 (추정):
CWE-125 (OOB Read)를 통해 커널 베이스 주소 유출 $\rightarrow$ KASLR 무력화 $\rightarrow$ 타 Memory Corruption(예: Use-After-Free, Buffer Overflow 등 Write primitive) 취약점 결합 $\rightarrow$cred구조체 조작 또는 함수 포인터 덮어쓰기 $\rightarrow$ Root 권한 획득. - 권한 상승 가속화: 일반적인 LPE 공격에서 가장 까다로운 지점인 '커널 주소 예측' 문제를 해결해주므로, 체이닝 시 전체 공격 난이도를 대폭 낮추는 역할을 한다.
🔎 탐지
- 커널 로그:
BUG: KASAN: slab-out-of-bounds in nf_ct_expect_related_report메시지 모니터링. - 행위 기반 탐지: eBPF 또는 Kernel Audit을 통해
nlmsg_type이CTNETLINK인 메시지 중, 표준적이지 않은 helper 이름(CTA_EXPECT_HELP_NAME)이 포함된 요청을 지속적으로 보내는 프로세스 추적.
🛡️ 완화 방안
- 근본 해결: 영향받는 Linux 커널 버전(3.12 ~ 6.19 일부)을 최신 패치 버전으로 업데이트하여, 유저스페이스의 명시적 helper 제안을 무시하고 마스터 conntrack helper만 사용하도록 강제한다.
- 즉시 조치: 시스템 내
CAP_NET_ADMIN권한 보유 프로세스를 최소화하고, 불필요한 Netlink 소켓 접근 및netfilter관련 모듈 로드를 제한하여 공격 표면을 제거한다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.3 · non-KEV · EPSS=0.00126 · exploit=hard · in_scope=None