[공격] 분석 — CVE-2023-52927
CVE‑2023‑52927 is a local kernel memory‑corruption bug in nf_conntrack expectation handling that allows privilege escalation, and the fastest mitigation is to apply the upstream patch or temporarily disable expectations via sysctl.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00303 · 악용난이도 hard
🔍 공격 기법
-
공격 표면
nf_conntrack모듈이 로드된 커널(5.18‑6.1.130, 6.2‑6.6)- Netlink (
NFNL_SUBSYS_CTNETLINK) 혹은 raw‑socket을 통해 conntrack 기대(expectation)를 생성·조작할 수 있는 프로세스 (일반 사용자 권한도 가능)
-
트리거 조건
- 공격자는
CT_NEW/EXPECT_NEWNetlink 메시지에IPS_CONFIRMED플래그가 설정된 기대 구조를 삽입한다. - 커널이 패킷을 처리하면서
nf_ct_find_expectation()을 호출하고, 기존 구현에서는 기대를 해시 테이블에서 제거한 뒤 포인터를 해제하였다. - 기대가 아직 확인되지 않은 상태(OVS·TC와 같은 상황)에서 해제된 메모리를 재사용하려 하면 use‑after‑free 가 발생한다.
- 공격자는
-
공격 단계
- 정찰 –
uname -r,lsmod | grep nf_conntrack로 취약 커널·모듈 존재 확인 (AV:L). - 초기 접근 – 일반 사용자 권한으로 raw‑socket 혹은 Netlink을 열어 조작된
EXPECT_NEW메시지를 전송,IPS_CONFIRMED플래그를 포함시킨다 (PR:L, AC:L). - 실행·권한 획득 – 기대가 해제되지 않은 채 남아 있을 때 커널이 해당 포인터를 재사용하도록 조작된 패킷을 주입, 메모리 오버라이트 → 임의 코드 실행 → 루트 쉘 확보 (UI:N).
- 지속 – 획득한 루트 권한으로 시스템 서비스 파일·cron 등록 등 영구화 작업 수행.
- 정찰 –
-
CVSS ↔ 실제 조건 매핑
- AV:L → 공격자는 동일 호스트에서 패킷을 직접 주입해야 함.
- AC:L, PR:L → 특수 권한 없이도 가능하므로 로컬 특권 상승 시나리오가 현실적.
- UI:N, S:U → 사용자 상호작용이 필요 없으며 성공 시 전체 시스템 영향을 미침.
다중 소스에서 일관성이 확인됐으며(교차검증), EPSS 0.00303은 실제 악용 가능성을 낮게 평가하지만 hard 등급으로 판단돼 신속 대응이 요구됩니다.
악용 가능성: 이 취약점은 AV:L(로컬 네트워크)·AC:L(낮은 복잡도)·PR:L(저권한)·UI:N(사용자 개입 없음)이라는 CVSS 벡터가 의미하듯, 공격자는 로컬 시스템에 대한 CAP_NET_ADMIN 또는 유사 권한만 있으면 충분히 시도할 수 있습니다. 그러나 기대(expectation)를 제거하지 않도록 상태를 조작하려면 nf_conntrack 구조체와 netfilter 핸들링 루틴을 직접 호출해야 하는데, 이는 일반 사용자 계정으로는 접근이 차단되고 커널 내부 API에 대한 상세 이해가 필요하므로 실전 난이도는 ‘hard’로 평가됩니다. EPSS 0.00303이라는 수치는 현재 관측된 실제 악용 가능성이 매우 낮음을 보여주며, KEV에 등재되지 않은 점 역시 광범위한 공격으로 전환된 사례가 없다는 것을 뒷받침합니다. 공격 표면은 nf_ct_find_expectation 함수와 이를 호출하는 nf_conntrack_in() 경로이며, 이 경로는 netfilter netlink 인터페이스(예: conntrack 명령어나 setsockopt) 를 통해 노출되는 파라미터 ‘status’ 및 ‘tmpl’ 구조체에 국한됩니다. 공격자는 먼저 로컬에서 conntrack 테이블을 열람·수정할 수 있는 권한을 확보하고, 기대 객체를 IPS_CONFIRMED 플래그가 설정된 템플릿으로 삽입해 정상 흐름에서는 제거되지 않게 만든 뒤, 이후 비정상적인 패킷이 해당 기대와
💥 영향 분석
- 커널 메모리 손상 → 임의 코드 실행 → 루트 권한 획득.
- 컨테이너·VM 환경에서 호스트 탈출, 시스템 전체 서비스 마비, 보안 정책 우회가 가능해집니다.
🔗 관련 취약점·체이닝
- CWE‑416(Use‑After‑Free) 유형이며, 동일
nf_conntrack모듈 내 다른 메모리 관리 버그(CVE‑2022‑xxxx 등)와 결합하면 권한 상승 → 커널 코드 실행 체인이 완성될 수 있습니다(추정). CAP_NET_RAW혹은 Netlinkctnetlink접근 권한을 가진 서비스가 존재한다면, 해당 서비스를 이용해 기대 생성·조작을 자동화하고 이후 로컬 특권 상승 단계와 연계할 수 있습니다.
🔎 탐지
- auditd:
netlinkctnetlink메시지 중EXPECT_NEW에IPS_CONFIRMED플래그가 포함된 이벤트를 기록 (auditctl -a always,exit -F arch=b64 -S sendmsg -F msgtype=NFNL_SUBSYS_CTNETLINK). - eBPF:
nf_ct_find_expectation()진입 시점의 스택 트레이스와exp->status값을 모니터링하고 비정상적인 해시 삭제 로그를 SIEM에 전송. - 커널 로그: OOPS/리부팅 메시지에 “use‑after‑free” 또는 “null pointer dereference in nf_conntrack” 문자열이 나타나면 경보 발생.
🛡️ 완화 방안
- 패치 적용 – 배포판 보안 업데이트 혹은 upstream 커밋(5.18 ~ 6.6 라인 최신)으로 즉시 업그레이드.
- 임시 차단 –
sysctl -w net.netfilter.nf_conntrack_expect_max=0로 기대 생성 자체를 비활성화(서비스 영향 사전 검토 필요). - 모듈 제한 – 불필요한 경우
modprobe -r nf_conntrack후 자동 로드 방지(systemd-modules-load.d). - 권한 경감 – SELinux/AppArmor 정책으로
ctnetlink접근을cap_net_admin이 필요한 프로세스로 제한하고, raw‑socket 사용을 차단 (sysctl -w net.ipv4.ping_group_range=0 0). - 모니터링 강화 – 위 탐지 규칙을 SIEM에 연계해 비정상적인 기대 생성·삭제 이벤트를 실시간 경보로 전파하고, 커널 OOPS 로그 수집 파이프라인을 최신화한다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00303 · exploit=hard · in_scope=None