[방어] 분석 — CVE-2025-71197
Mitigate the off-by-one buffer overflow in Linux kernel's w1 therm alarms_store by restricting sysfs write access to privileged users until patching.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.00196 · 악용난이도 hard
🔍 공격 기법
- 취약점 원리:
w1: therm드라이버의alarms_store()함수에서 발생하는 Off-by-one Buffer Overflow입니다. - 트리거 경로: 사용자가
sysfs인터페이스를 통해 특정 값을 쓸 때, 커널이size + 1바이트를 할당하지만 실제 복사 과정에서strcpy()가 NUL 종료 문자를 포함해 할당된 크기를 1바이트 초과하여 기록합니다. - 공격 단계:
sysfs엔드포인트에 정교하게 계산된 길이의 데이터를 입력 $\rightarrow$ 인접 메모리 영역의 1바이트 오버라이트 $\rightarrow$ 추정: 커널 메모리 오염 및 잠재적 권한 상승 시도.
악용 가능성: 본 취약점은 Linux kernel의 w1-therm 드라이버 내 alarms_store() 함수에서 발생하는 Off-by-one Buffer Overflow로, 공격 난이도는 Hard로 평가됩니다. CVSS 벡터상 Local 권한(PR:L)과 특정 하드웨어 인터페이스 접근이 전제되어야 하며, 특히 /sys/bus/w1/devices/.../alarm와 같은 sysfs 엔드포인트에 값을 쓰는 과정에서 트리거되므로 일반적인 네트워크 외부 공격 표면에서는 완전히 격리되어 있습니다. EPSS 수치가 0.00196으로 매우 낮고 KEV(Known Exploited Vulnerabilities)에도 등재되지 않은 점은, 이론적인 메모리 오염 가능성과 별개로 실제 야생(In-the-wild)에서 악용된 사례가 거의 없음을 시사합니다. 공격자는 sysfs 파라미터를 통해 정밀하게 계산된 입력값을 전달하여 NUL terminator가 할당된 버퍼 경계를 1바이트 초과하도록 유도해야 합니다. 결과적으로 커널 메모리 상의 인접 데이터 오염을 통한 권한 상승(LPE) 가능성은 존재하나, 현대 커널의 메모리 보호 기법과 제한적인 공격 표면으로 인해 실제 악용 가능성은 매우 낮습니다.
💥 영향 분석
- 메모리 오염: 커널 공간(Kernel Space)에서 1바이트 쓰기 오류가 발생하므로, 인접한 데이터 구조체가 손상될 수 있습니다.
- 시스템 안정성: 잘못된 메모리 참조로 인한 Kernel Panic 및 시스템 크래시(DoS) 가능성이 존재합니다.
🔗 관련 취약점·체이닝
- 유형: CWE-193 (Off-by-one Error) 패턴입니다.
- 체이닝: 단일 1바이트 오버플로우만으로는 직접적인 RCE가 어려우나, 다른 커널 메모리 누수(Leak) 취약점과 체이닝될 경우 KASLR 우회 및 권한 상승의 발판으로 활용될 수 있습니다.
🔎 탐지
- 로그 지표:
sysfs파일 시스템 내w1_therm관련 경로에 대한 비정상적인 쓰기 시도 로그를 확인해야 합니다. (단, 표준 커널 로그에는 개별 sysfs 쓰기 기록이 남지 않으므로 Auditd 설정 필요) - 탐지 규칙 예시:
- Auditd 기반 탐지:
w1관련 sysfs 경로에 대한write시스템 콜 모니터링.Condition:syscall=writeANDpath=~ /sys/bus/w1/devices/.* /alarmsThreshold: 단시간 내 반복적인 쓰기 시도 또는 비정상적으로 긴 입력값 확인.
- SIEM 의사코드:
sql1SELECT timestamp, user, pid, process_name, target_file2FROM kernel_audit_logs3WHERE target_file LIKE '%/sys/bus/w1/devices/%/alarms'4 AND event_type = 'WRITE_ATTEMPT'5 AND input_length > [추정: 정상 임계값]
- Auditd 기반 탐지:
- 오탐 튜닝: 하드웨어 모니터링 에이전트나 시스템 관리 도구가 정기적으로 알람 값을 업데이트하는 경우 오탐이 발생합니다. 신뢰할 수 있는 프로세스(예: 특정 모니터링 데몬)의 PID를 화이트리스트에 추가하여 필터링하십시오.
🛡️ 완화 방안
- 즉시 (긴급 차단): sysfs 접근 권한 제한.
w1관련 sysfs 경로의 쓰기 권한을 root로 엄격히 제한하거나, 불필요한 경우 해당 인터페이스 접근을 ACL/SELinux/AppArmor 정책으로 차단합니다.- 난이도: 낮음 / 운영 영향: 낮음 (특수 하드웨어 제어 사용자 외 영향 없음) / 검증: 일반 사용자로
echo명령어를 통한 쓰기 테스트 시Permission denied확인.
- 난이도: 낮음 / 운영 영향: 낮음 (특수 하드웨어 제어 사용자 외 영향 없음) / 검증: 일반 사용자로
- 단기 (완화): 불필요한 커널 모듈 로드 방지.
w1_therm모듈을 사용하지 않는 서버의 경우,/etc/modprobe.d/blacklist.conf에 해당 모듈을 추가하여 런타임 로드를 차단합니다.- 난이도: 낮음 / 운영 영향: 중간 (해당 센서 기능 사용 불가) / 검증:
lsmod | grep w1_therm결과 없음 확인.
- 난이도: 낮음 / 운영 영향: 중간 (해당 센서 기능 사용 불가) / 검증:
- 근본 (해결): 커널 업데이트 및 패치 적용.
strcpy()대신simple_strtoll()을 사용하여 중간 메모리 할당 없이 직접 파싱하도록 수정된 최신 커널 버전으로 업그레이드합니다.- 난이도: 중간 / 운영 영향: 높음 (재부팅 필요) / 검증: 패치 적용 후 커널 버전 확인 및 취약점 수정 커밋 반영 여부 확인.
[분석 근거] 본 리포트는 다중 소스 데이터 간 일관성이 확인된 교차검증 결과에 기반합니다. 실측 EPSS 수치가 0.00196(백분위 0.09584)로 매우 낮고, PoC가 미상이며 악용 난이도가 'hard'로 평가됨에 따라 우선순위를 monitor로 결정하였습니다. 이는 이론적 심각도와 별개로 실제 야생에서의 악용 가능성이 현재로서는 매우 희박함을 의미합니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.00196 · exploit=hard · in_scope=None