[공격] 분석 — CVE-2025-22107
Out-of-bounds memory access in Linux kernel's sja1105 driver can lead to system instability or crashes, requiring an update to the kernel version.
📋 요약
- 심각도 high · CVSS 7.1 · EPSS 0.00196 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건
net: dsa: sja1105드라이버의sja1105_table_delete_entry()함수 호출 시 발생.- 테이블의 마지막 요소를 삭제할 때, 불필요한
memmove가 수행되며 인덱스i + 1(Out-of-Bounds) 영역에 접근하는 결함이 핵심임.
(2) 공격 단계 및 전제조건
- 정찰: 대상 시스템이 SJA1105 기반 DSA 스위치 하드웨어를 사용하며 Linux kernel 5.2 ~ 6.14.2 버전임을 확인.
- 초기 접근:
AV:L및PR:L조건에 따라, 공격자는 이미 시스템에 일반 사용자 권한으로 로그인되어 있어야 함. - 실행/영향: 네트워크 설정 변경 등 드라이버의 테이블 엔트리 삭제를 유도하는 시스템 콜을 호출하여 OOB 접근 트리거 $\rightarrow$ 추정: 커널 패닉(Kernel Panic) 또는 메모리 오염 유발.
(3) 공격 표면
- 노출 지점: Linux Kernel Network Subsystem $\rightarrow$ DSA (Distributed Switch Architecture) $\rightarrow$
sja1105드라이버. - 함수/파라미터:
sja1105_table_delete_entry()내의 인덱스 계산 및memmove호출 로직.
(4) CVSS 벡터 분석
AV:L / PR:L: 로컬 권한을 가진 사용자가 트리거 가능하므로 원격 공격은 불가능함.AC:L: 특정 하드웨어 드라이버가 활성화되어 있다면 트리거 조건이 단순함.UI:N: 사용자 상호작용 없이 시스템 콜 수준에서 실행됨.
악용 가능성: 본 취약점은 Linux kernel의 dsa 드라이버 내 sja1105_table_delete_entry() 함수에서 발생하는 Out-of-Bounds(OOB) Read/Write 결함으로, 공격 난이도는 Hard로 판단됩니다. AV:L 및 PR:L 벡터가 가리키듯, 공격자는 이미 시스템에 로컬 계정 권한을 획득한 상태여야 하며, 특정 하드웨어(SJA1105 스위치)가 장착된 환경이라는 물리적 전제조건이 필요합니다. 공격 표면은 커널 내부의 DSA 테이블 관리 인터페이스 및 관련 ioctl 또는 네트워크 설정 파라미터에 국한되어 외부망에서의 직접적인 트리거는 불가능합니다. EPSS 수치가 0.00196으로 매우 낮고 KEV에 등재되지 않은 점은, 해당 취약점이 일반적인 서버 환경보다는 특정 임베디드/산업용 장비에 한정된 타겟형 위협임을 시사합니다. 트리거 조건은 테이블의 마지막 요소를 삭제할 때 잘못 계산된 memmove 범위가 인접 메모리를 침범하는 것이며, 이는 단순 Crash(DoS)를 유발하거나 드물게 커널 메모리 레이아웃에 따라 권한 상승을 위한 메모리 오염으로 이어질 수 있습니다. 결과적으로 이론적 심각도보다는 특정 하드웨어 종속성과 로컬 접근 권한이라는 제약 사항이 악용 가능성을 크게 낮추는 요인입니다.
💥 영향 분석
(1) 기술적 위험
- 서비스 중단 (DoS): OOB 접근 시 해당 메모리가 unmapped page인 경우 즉각적인 Kernel Panic으로 인한 시스템 다운 발생 (
A:H). - 정보 유출: 추정: OOB 영역의 데이터를 읽을 수 있다면 커널 메모리 일부가 노출될 가능성이 있음 (
C:H).
(2) 비즈니스 영향
- 가용성 저하: 네트워크 스위치 제어 기능을 수행하는 커널 모듈의 결함으로, 인프라 장비의 가동 중단 및 서비스 불능 상태 초래.
- 신뢰도 하락: 임베디드/네트워크 장비의 안정성 결여로 인한 운영 신뢰도 저하.
🔗 관련 취약점·체이닝
- 체이닝 경로:
Memory-Corruption (OOB)$\rightarrow$ 추정:Kernel Address Leak$\rightarrow$ 추정:Privilege Escalation. - 상세 패턴: 단순한 OOB 접근은 시스템 크래시(DoS)로 끝나기 쉬우나, 만약 이 결함을 통해 커널 메모리의 특정 주소를 읽거나 쓸 수 있다면, 다른 권한 상승 취약점과 체이닝하여 일반 사용자(
PR:L)에서 루트 권한을 획득하는 시나리오가 가능함. - 방어 우회: KASAN(Kernel Address Sanitizer) 환경에서는 경고가 발생하지만, 실제 배포용 커널(Production Kernel)에서는 KASAN이 꺼져 있어 탐지 없이 메모리 오염이 진행될 수 있음.
🔎 탐지
(1) 로그 지표
dmesg또는/var/log/kern.log내의KASAN: out-of-bounds경고 메시지.sja1105_table_delete_entry함수 호출 직후 발생하는 커널 덤프(Oops) 로그.
(2) 탐지 규칙 (의사코드)
- Rule 1 (Log-based):
SELECT * FROM kernel_logs WHERE message LIKE '%KASAN%out-of-bounds%' AND message LIKE '%sja1105_table_delete_entry%' - Rule 2 (Behavioral): 특정 일반 사용자가 네트워크 인터페이스 설정 변경 명령(예:
ip link,ethtool)을 비정상적으로 짧은 시간에 반복 호출하며 커널 패닉이 발생하는 패턴 감시.
(3) 오탐 시나리오 및 튜닝
- 오탐: 하드웨어 결함으로 인한 무작위 메모리 오류와 혼동 가능.
- 튜닝:
sja1105드라이버 관련 함수 스택 트레이스가 명확히 포함된 로그만 필터링하여 정확도 향상.
🛡️ 완화 방안
- 즉시 (긴급 차단): SJA1105 하드웨어를 사용하지 않는 시스템은 해당 모듈 로드를 차단 (
modprobe -r sja1105또는/etc/modprobe.d/에 blacklist 추가). [난이도: 저 / 영향: 낮음(미사용 시) / 검증:lsmod | grep sja1105] - 단기 (완화): 일반 사용자의 네트워크 설정 변경 권한(
CAP_NET_ADMIN)을 엄격히 제한하여 공격 표면 최소화. [난이도: 중 / 영향: 보통(관리 작업 제약) / 검증:getcap확인] - 근본 (해결): Linux Kernel 6.14.2 이후 버전 또는 해당 패치가 적용된 배포판 커널로 업데이트. [난이도: 고 / 영향: 높음(재부팅 필요) / 검증:
uname -r]
[분석 근거]
- 본 리포트는 다중 소스 데이터의 일관성이 확인된 결과이며, EPSS 실측값 0.00196(백분위 0.09615)을 통해 실제 악용 가능성은 매우 낮음(
hard)으로 판단됨. 이에 따라 CVSS 7.1의 심각도에도 불구하고 즉시 대응보다는 이번 주 내 처리하는scheduled우선순위로 결정함.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.1 · non-KEV · EPSS=0.00196 · exploit=hard · in_scope=None