[분석가] 분석 — CVE-2026-31507
CVE-2026-31507 is a local privilege escalation in the Linux kernel’s SMC module caused by a double‑free leading to use‑after‑free, and administrators should apply the upstream patch immediately while optionally disabling the SMC subsystem on unaffected hosts.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00131 · 악용난이도 hard
🔍 공격 기법
SMC net 모듈의 smc_rx_splice() 가 파이프 버퍼마다 smc_spd_priv 구조체를 할당하고 이를 pipe_buffer.private 에 저장합니다.
tee(2) 로 파이프 버퍼가 복제될 때 사용되는 .get = generic_pipe_buf_get 은 페이지 참조 카운트만 증가시키고, smc_spd_priv 포인터는 복사되지 않아 원본과 복제 버퍼가 동일한 객체를 가리키게 됩니다.
두 파이프가 해제되면 smc_rx_pipe_buf_release() 가 동일 객체에 대해 두 번 호출되어 kfree(priv) 가 중복 실행되고, 이후 해제된 구조체를 참조하면서 UAF → NULL‑pointer dereference → 커널 패닉 혹은 임의 코드 실행이 발생합니다.
필요 권한은 로컬 저권한(L)이며, 공격자는 일반 사용자 계정만으로 tee 시스템 콜을 이용해 트리거할 수 있습니다.
악용 가능성: 해당 취약점은 로컬 환경에서만 발동되며, 공격자는 동일한 시스템에 이미 존재하는 일반 사용자 권한(L)으로 tee(2) 호출을 이용해 파이프 버퍼를 복제해야 합니다. 복제된 파이프 버퍼가 공유하는 smc_spd_priv 구조체가 두 번 해제될 때 이중 해제가 발생하므로, 실제 악용을 위해서는 커널 내부의 SMC(Shared Memory Communication) 모듈이 활성화된 상태여야 하고, 해당 모듈을 이용할 수 있는 적절한 파이프 설정을 직접 구성해야 합니다. CVSS 벡터가 AV:L/AC:L/PR:L/UI:N이라 낮은 복잡도와 권한 요구를 보여주지만, 공격자는 커널 레벨에서 메모리 관리 흐름을 정확히 이해하고, 의도적으로 두 파이프가 동시에 해제되는 시점을 만들 수 있어 구현 난이도가 높아 “hard” 등급으로 판단됩니다. EPSS 점수는 0.00131로 매우 낮으며, KEV(폭넓게 악용된 취약점)에도 등재되지 않아 현재 실전 공격 사례가 거의 관측되지 않았습니다. 따라서 실제 위협은 제한된 로컬 환경에서 고도의 커널 지식과 정밀 타이밍 제어를 갖춘 숙련된 공격자에 국한됩니다. 공격 표면은 tee(2) 시스템 콜을 통해 노출되는 파이프 버퍼와 해당 파이프가 연결된 SMC 소켓이며, 이 엔드포인트가 외부에 공개되지 않는 한 악용 가능성은 낮다고 볼 수 있습니다.
💥 영향 분석
- 기술적 위험: 슬랩‑UAF에 의해 커널 메모리가 손상되어
- 즉시 커널 패닉 → 서비스 중단(Denial of Service)
- 적절한 컨텍스트에서 임의 코드 실행 → 루트 권한 획득 가능성(Privilege Escalation)
- 비즈니스 리스크:
- 가용성 손실로 인한 운영 차질 및 SLA 위반 위험
- 시스템 무결성 침해 시 규제·컴플라이언스 위반(예: PCI‑DSS, GDPR) 가능성
- 신뢰도 하락으로 인해 고객·파트너 관계 악화 우려
- 영향 제품·노출 규모: Linux kernel 4.18.1‑5.10.253, 5.11‑5.15.203, 5.16‑6.1.168, 6.2‑6.6.131, 6.7‑6.12.80, 6.13‑6.18.21, 6.19‑6.19.11 등 다수(8) 버전에 존재하므로 광범위한 배포 환경이 노출됩니다.
- 근거: 교차검증 결과 다중 소스에서 일관성이 확인됐으며([교차검증] 다중 소스 데이터 일관성 확인됨).
🔗 관련 취약점·체이닝
추정: 동일 커널 서브시스템에서 보고된 메모리‑오염 유형(CWE‑416, Double Free / Use‑After‑Free)과 참조 카운트 오류(CWE‑787, Out‑of‑bounds Write)가 연쇄적으로 이용될 수 있습니다. 공격자는 이 UAF를 기반으로 커널 ROP 체인을 구성하거나, 이미 존재하는 권한 상승 로직과 결합해 완전한 루트 획득을 시도할 가능성이 있습니다.
🔎 탐지
- KASAN 로그:
KASAN: slab-use-after-free와smc_rx_pipe_buf_release문자열이 포함된 커널 메시지- 예시 패턴:
/KASAN: slab-use-after-free.*smc_rx_pipe_buf_release/
- 예시 패턴:
- dmesg / syslog:
BUG: KASAN:로 시작하는 Oops 로그, 특히task smc_splice_tee_가 언급된 경우 - auditd:
tee시스템 콜이 SMC 디바이스(smc*)와 연계될 때 발생하는 이벤트 감시 - 프로세스 트레이싱:
strace -e trace=tee로 실행 중인 프로세스에서 비정상적인 파이프 복제 시도 포착
🛡️ 완화 방안
- 패치 적용 – 해당 취약점을 해결한 upstream 커밋을 포함하는 최신 kernel 패키지로 업데이트하고, 지원되는 배포판에서는 보안 업데이트를 즉시 적용합니다.
- 모듈 비활성화 – SMC 기능이 필요 없을 경우
modprobe -r smc혹은 부팅 시disable_smc=1옵션으로 모듈 로드를 차단합니다. - TEE 사용 제한 – AppArmor/SELinux 정책을 통해 일반 사용자 계정의
tee호출을 SMC 디바이스에 대해 금지합니다. - 모니터링 강화 – 위 탐지 지표를 SIEM에 연동해 실시간 알림을 설정하고, KASAN 활성화를 검토하여 조기 발견 능력을 높입니다.
- 장기 방어 – 커널 메모리 관리와 파이프 복제 로직 전반에 대한 코드 리뷰 및 정적 분석 도구 적용으로 유사한 참조 카운트 오류를 사전에 차단합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00131 · exploit=hard · in_scope=None