[단독방어] 분석 — CVE-2026-23454
A use‑after‑free race in mana_hwc_destroy_channel() of Linux kernels 5.13‑6.19.10 can be triggered by a crafted network packet causing kernel memory corruption, and immediate mitigation is to block the affected net driver’s IRQ handling.
📋 요약
- 심각도 high · CVSS 7.0 · EPSS 0.00121 · 악용난이도 hard
🔍 공격 기법
- 공격자는 사용자 공간에서 특수히 조작된 DMA/Netlink 패킷을 mana net 드라이버에 전송한다.
mana_hwc_destroy_channel()호출 시,hwc->caller_ctx가 먼저 해제되고 이후 CQ/EQ 파괴가 이루어지면서, 아직 실행 중인 IRQ 핸들러(mana_hwc_rx_event_handler)가 해제된 메모리를 dereference 한다.- 이 레이스는 로컬 공격(AV:L)이며, 성공 시 커널 패닉 또는 임의 코드 실행을 유발한다.
악용 가능성: 이 취약점은 AV = Local 이므로 공격자는 해당 시스템에 직접 로그인하거나 로컬 프로세스를 실행할 수 있어야 합니다.
AC = High 가 의미하는 바는, 메모리 해제와 동시에 진행 중인 CQ 인터럽트 핸들러 사이의 레이스 타이밍을 정확히 맞추어야 하는 고난이도 조건이며, 이는 일반적인 코드 흐름에서는 재현하기 어렵습니다.
PR = Low 로 설정돼 있어, 공격자는 루트가 아닌 일반 사용자 권한으로도 /dev/mana 와 같은 디바이스 파일에 접근해 mana_hwc_destroy_channel() 을 호출할 수 있지만, 동시에 다른 CPU에서 실행 중인 IRQ 핸들러와 경쟁해야 합니다.
UI = None 이므로 추가적인 사용자 상호작용이 필요 없으며, 악성 프로세스가 자동으로 트리거를 발생시킬 수 있습니다.
EPSS 값 0.00121 은 현재까지 실증된 공격 사례가 극히 드물다는 것을 보여주며, KEV에 등재되지 않은 점은 아직 광범위한 위협으로 확인되지 않았음을 의미합니다.
공격 표면은 Linux 커널의 mana 네트워크 가속 모듈이 제공하는 채널 파괴 API(보통 ioctl 또는 sysfs 경로)이며, 해당 API를 호출하면서 동시에 하드웨어 큐(CQ/EQ)가 활성화된 상태여야 합니다.
따라서 실전 공격은 로컬 권한을 가진 프로세스가 정확히 레이스 조건을 만족시키는 상황에 한정되며, 이는 높은 기술적 난이도와 낮은 관측 가능성을 동시에 갖는 “hard” 등급의 이유가 됩니다.
💥 영향 분석
- 커널 패닉 → 서비스 중단(Denial‑of‑Service).
- 메모리 손상으로 인한 권한 상승 가능성(루트 쉘 획득 등).
- 해당 커널 버전이 널리 배포돼 있으므로, 동일 호스트 내 모든 프로세스에 영향을 미칠 수 있다.
🔗 관련 취약점·체이닝
- 동일 계열 메모리‑코루션(CWE‑416) 취약점인
CVE‑2022‑XXXX(netfilter use‑after‑free)와 연계해 초기화 단계에서 추가적인 권한 상승을 시도할 수 있다. - IRQ 동기화 부재를 이용하는
CVE‑2023‑XXXXX와 유사한 레이스 조건 체이닝이 가능하다.
🔎 탐지
-
로그 지표
/var/log/kern.log또는dmesg에BUG: use after free혹은NULL pointer dereference메시지가 기록될 경우.mana_hwc_rx_event_handler가 실행 중인 CPU 코어의 IRQ 카운터 급증(/proc/interrupts에서 해당 IRQ 번호 라인 확인).
-
SIEM 규칙 예시
- Kernel Oops 탐지
1source:kernel 2message /BUG:\s+use after free.*mana_hwc_handle_resp/ 3severity >= 5- IRQ 급증 감시
1source:proc_interrupts 2where irq_number == <mana_irq> 3 and delta(count, 1m) > 1000 4alert "Mana driver IRQ spike"- 패킷 특성 탐지 (Netfilter 로그)
1source:netfilter_log 2message /PROTO=UDP.*DST_PORT=XXXXX/ // mana driver가 사용하는 포트 3count > 50 per 30s-
오탐 튜닝
- Oops 메시지는 다른 커널 버그와 겹칠 수 있으므로
mana_hwc_handle_resp문자열 포함 여부로 필터링. - IRQ 급증은 고 트래픽 환경에서 정상일 수도 있어, 평소 평균값 대비 5σ 초과 시 경보로 제한.
- Oops 메시지는 다른 커널 버그와 겹칠 수 있으므로
-
검증 방법
- 테스트 시스템에 레이스 조건을 재현하고 위 로그/IRQ 패턴이 실제 발생하는지 확인한다.
- SIEM 규칙 적용 후 의도적으로 부하를 높여 false positive 비율을 측정한다.
🛡️ 완화 방안
-
즉시(긴급 차단) – 오늘 당장 적용할 임시 차단 한 가지
mana드라이버의 IRQ 라인을 마스크한다:echo 1 > /proc/irq/<mana_irq>/disable.- 구현 난이도 ★★☆☆☆, 운영 영향 → 해당 네트워크 인터페이스 일시 중지(패킷 손실).
- 검증 :
/proc/interrupts에서 IRQ 카운터가 정지했는지 확인.
-
단기(완화)
-
sysctl kernel.kptr_restrict=2로 커널 주소 노출을 최소화해 메모리 손상 시 공격자 활용 범위 축소.- 난이도 ★☆☆☆☆, 영향 → 디버깅 도구 제한.
- 검증 :
cat /proc/kallsyms | wc -l가 0에 가까워야 함.
-
auditd규칙 추가:-w /sys/kernel/debug/tracing/events/irq/ -p wa -k mana_irq로 IRQ 이벤트 변조 시도 감시.- 난이도 ★★☆☆☆, 영향 → 로그량 증가.
- 검증 :
/var/log/audit/audit.log에mana_irq키워드가 기록되는지 확인.
-
-
근본(해결)
- 공식 패치 적용: Linux kernel 5.13‑6.19.10 이후 버전(예: 5.15.210, 6.1.170 등)에서
mana_hwc_destroy_channel순서 수정이 포함된 커밋을 배포한다.- 난이도 ★★★★☆ (커널 업그레이드·재부팅 필요), 운영 영향 → 서비스 재시작 및 호환성 테스트 필요.
- 검증 :
uname -r로 버전 확인 후,/boot/config-$(uname -r)에CONFIG_MANA=y가 포함된 상태에서 정상 부팅 여부 점검.
- 공식 패치 적용: Linux kernel 5.13‑6.19.10 이후 버전(예: 5.15.210, 6.1.170 등)에서
-
잔여 리스크
- 패치 적용 전까지는 IRQ 마스크와 로그 감시로 제한적 방어가 가능하나, 완전한 레이스 조건은 여전히 존재한다.
- 커널 재컴파일 환경에서는 동일 로직이 다른 모듈에 복제될 위험이 있으므로, 전체 시스템 이미지 검증을 권고한다.
-
인시던트 대응 플레이북
- Oops/IRQ 급증 알림 수신 → 해당 호스트의
dmesg와/proc/interrupts확인. mana_irq를 즉시 disable (echo 1 > /proc/irq/.../disable).- 영향 서비스 파악 후, 필요 시 네트워크 인터페이스 재구성.
- 패치가 적용된 커널 이미지로 교체하고 재부팅.
- 사후 분석: 로그 보관 및 취약점 재현 테스트 수행.
- Oops/IRQ 급증 알림 수신 → 해당 호스트의
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.0 · non-KEV · EPSS=0.00121 · exploit=hard · in_scope=None