[단독방어] 분석 — CVE-2026-23475
The Linux kernel SPI controller per‑CPU statistics NULL‑pointer dereference (CVE-2026-23475) can be triggered via local sysfs access, and the immediate mitigation is to block that sysfs interface until a patched kernel is deployed.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00123 · 악용난이도 hard
🔍 공격 기법
취약한 spi 드라이버가 등록된 직후 통계 구조체를 할당하지 않아, 사용자가 /sys/bus/spi/... 경로의 속성을 읽으면 NULL 포인터 역참조가 발생합니다. 로컬 권한을 가진 프로세스가 해당 sysfs 파일에 접근하면 커널이 OOPS/패닉을 일으켜 서비스 중단(DoS) 효과를 얻습니다.
악용 가능성: AV:L(로컬) · AC:L(낮은 복잡도) · PR:L(저권한 사용자) · UI:N(사용자 개입 없음)이라는 CVSS 벡터는, 공격자가 해당 호스트에 로컬 계정만 있으면 별도의 권한 상승이나 물리적 접근 없이 sysfs‑/sys/bus/spi/... 경로의 속성을 조작해도 된다는 전제를 의미합니다.
하지만 이 취약점은 SPI 컨트롤러가 드라이버 코어에 등록된 직후, 아직 per‑CPU 통계 구조가 할당되지 않은 짧은 시간 창에서만 발생하므로, 실제 공격을 성공시키려면 그 순간에 속성을 읽거나 쓰는 레이스를 정확히 맞춰야 하는 ‘타이밍’ 조건이 존재합니다.
따라서 공격 난이도는 “hard”로 평가되며, 이는 로컬 접근 자체는 쉬워도 윈도우 타이밍을 만족시켜 NULL‑pointer dereference 를 트리거해야 하기 때문입니다.
EPSS = 0.00123(0.123 %)이라는 실측값은 현재까지 관찰된 실제 악용 사례가 극히 드물다는 것을 보여주고, KEV에 등재되지 않은 점도 “이론적 심각도와는 달리 현재 위협 수준은 낮다”는 근거가 됩니다.
공격 표면은 sysfs 속성 파일(예: /sys/bus/spi/devices/<dev>/statistics)이며, 이 파일에 쓰기 권한을 가진 로컬 사용자라면 언제든지 해당 엔드포인트를 호출해 NULL‑pointer dereference 를 유발할 수 있습니다.
결과적으로, 공격
💥 영향 분석
- 성공적인 악용 시 커널 패닉 → 시스템 다운 및 재부팅 필요
- 공격자는 로컬 권한만 있으면 영향을 받을 수 있어, 멀티‑테넌트 환경·컨테이너에서 다른 워크로드까지 서비스 중단 위험 존재
- 데이터 손실·서비스 가용성 저하가 주요 피해이며, 원격 침투와 결합될 경우 추가적인 악성 코드 실행 기회가 생길 수 있습니다.
🔗 관련 취약점·체이닝
추정: 동일한 NULL‑pointer dereference 패턴은 devres 관리 부실이나 초기화 순서 오류에서 자주 나타나며, CWE-476(Null Pointer Dereference)와 연관됩니다.
추정: 이 취약점은 시스템 콜/파일 시스템 권한 우회 단계와 결합될 경우, 로컬 프리빌리지 상승(CWE-269)으로 연결될 수 있습니다.
🔎 탐지
-
로그 지표
kernel또는dmesg로그에"spi"와"NULL pointer dereference"혹은"oops"문자열이 동시에 나타남.audit.log에서 sysfs 경로/sys/bus/spi/*에 대한open/read시도와 함께errno=14(EFAULT)가 기록될 경우.
-
SIEM 쿼리 예시 (Elastic Kibana DSL)
text1{2 "bool": {3 "must": [4 { "match_phrase": { "log.source": "kernel" } },5 { "wildcard": { "message": "*spi*" } },6 { "regexp": { "message": ".*(NULL|dereference).*", "flags": "ALL" } }7 ]8 }9} -
정규식 탐지
text1/spi.*(?:null|dereference|oops)/i -
오탐 튜닝
- 정상적인 SPI 디바이스 초기화 로그에도
"NULL"문자열이 포함될 수 있으므로,message필드에kernel panic혹은BUG:가 함께 있는 경우만 알림으로 제한. - 컨테이너 환경에서 별도 네임스페이스의 커널 로그가 중복될 경우,
host.id로 필터링하여 호스트 레벨 이벤트만 수집.
- 정상적인 SPI 디바이스 초기화 로그에도
🛡️ 완화 방안
- 즉시(긴급 차단) – 오늘 당장 적용할 임시 조치
/sys/bus/spi/*경로의 파일 권한을 root 전용으로 제한:
1find /sys/bus/spi -type f -exec chmod 600 {} \; 2chown root:root /sys/bus/spi/* 1*구현 난이도:* 낮음, **운영 영향:** 기존 비특권 사용자·컨테이너에서 SPI sysfs 접근 차단, 서비스 가용성에 직접적인 영향 없음. 2*검증 방법:* `stat` 로 권한 확인 후 일반 사용자 계정으로 파일 읽기 시도 → `Permission denied` 반환 여부 검증.-
단기(완화) – 패치 전까지 위험을 낮추는 조치
- SELinux/AppArmor 정책 추가:
spi_device_t타입에 대해read/write권한을root만 허용. - 시스템 감시 데몬(
systemd-journald,auditd)에서 위 탐지 규칙을 활성화하고, 알림 채널(Slack·PagerDuty)과 연동.
구현 난이도: 중간, 운영 영향: 정책 적용 후 재부팅 필요(SELinux 재로드 시 서비스 일시 정지 가능).
검증 방법: 정책 적용 후ausearch -k spi로 접근 시도 로그가denied로 기록되는지 확인.
- SELinux/AppArmor 정책 추가:
-
근본(해결) – 패치·수정 및 업그레이드 절차
- 공식 Linux 커널 패치(
v6.0‑...,v6.2‑...등) 적용:spi: fix statistics allocation커밋 포함 버전으로 업데이트. - 배포 환경에 따라 리눅스 커널 롤링 백포트(예: distro security repo) 또는 커스텀 패치를 빌드하여 적용.
구현 난이도: 높음, 운영 영향: 커널 재부팅 필요, 일부 서비스 다운 타임 발생 가능.
검증 방법:uname -r로 버전 확인 후, 동일 sysfs 접근 테스트 시 OOPS가 발생하지 않는지 검증.
- 공식 Linux 커널 패치(
-
잔여 리스크 – 패치 적용 전에는 위 즉시·단기 조치를 유지해야 하며, 권한 제한으로 인한 기능 제한(예: 사용자 공간 도구에서 SPI 설정 읽기) 가능성을 사전 고지하고, 보완 모니터링을 지속합니다.
-
인시던트 대응 플레이북
- 알림 수신 →
dmesg/journalctl -k에서 OOPS 로그 확인 - 영향을 받은 노드 식별 →
uname -r,/proc/version로 커널 버전 검증 - 즉시 차단 적용 여부 재확인 (권한 제한)
- 필요 시 서비스 재시작·노드 재부팅 후 정상 동작 확인
- 패치 배포 계획 수립 및 테스트 환경에서 사전 검증 후 전파
- 알림 수신 →
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00123 · exploit=hard · in_scope=None