[방어] 분석 — CVE-2026-13307
The heap‑based buffer overflow in Autel MaxiCharger AC Elite Home’s USB handling allows unauthenticated physical attackers to achieve arbitrary code execution, and the immediate mitigation is to disable or restrict all non‑power‑only USB functionality on the charger.
📋 요약
- 심각도 medium · CVSS 6.8 · EPSS 0.00344 · 악용난이도 hard
🔍 공격 기법
- 물리적으로 접근 가능한 상태에서 악의적인 USB 장치(예: BadUSB)가 커스텀 패킷을 전송한다.
- 길이 검증 없이 고정 크기 힙 버퍼에
memcpy등으로 복사하면서 0x200 바이트 이상 데이터를 넘겨 힙 오버플로우를 유발한다. - 오버플로된 데이터가 함수 포인터 또는 가상 테이블을 덮어써 코드 실행 권한을 획득한다.
악용 가능성: 이 취약점은 AV:P 로 표시된 바와 같이 물리적 접근이 전제조건이며, 공격자는 대상 충전기에 악성 USB 장치를 직접 연결해야 합니다. AC:L 은 공격 수행 절차가 단순함을 의미하는데, 길이 검증 누락으로 인한 힙 버퍼 오버플로우는 별도의 도구 없이도 쉽게 트리거될 수 있습니다. PR:N 과 UI:N 은 인증이나 사용자 조작이 전혀 필요하지 않음을 나타내어, 공격자는 장치를 물리적으로 삽입하는 순간 바로 코드를 실행할 수 있습니다. EPSS 값 0.00344(≈0.34 %)는 현재 관측된 실제 악용 확률은 낮지만, 완전히 배제되지 않는 수준이며, KEV 목록에 등재되지 않은 점은 아직 대규모 공격이 보고되지 않았음을 의미합니다. 그러나 취약점이 노출되는 엔드포인트는 USB 인터페이스이며, 커스텀 USB 패킷의 길이 필드를 조작하면 힙 기반 고정 버퍼에 데이터를 과다 복사하여 임의 코드를 실행할 수 있습니다. 따라서 물리적 접근 가능성이 있는 환경(예: 공용 충전소, 현장 유지보수 구역)에서 공격 난이도는 ‘hard’ 수준으로 평가되지만, 실제 공격 조건을 만족하면 구현 난이도는 낮은 편에 속합니다.
💥 영향 분석
- 성공 시 공격자는 충전기 펌웨어 수준에서 임의 코드를 실행할 수 있다.
- 제어 로직 변조 → 비정상적인 전압/전류 공급, 서비스 중단, 물리적 안전 위험(과충전·발열) 발생 가능.
- 인증이 필요 없으므로 현장 직원이나 방문자에 의해 손쉽게 악용될 수 있다.
🔗 관련 취약점·체이닝
- 동일한 USB 스택에서 길이 검증 누락으로 인한 다른 힙 오버플로우(CWE‑122)와 연계 가능성.
- 공격자는 BadUSB 기반 자동화 도구를 이용해 펌웨어 업데이트 프로세스를 가로채고 악성 이미지를 삽입할 수 있다(공통 USB HID/MSC 인터페이스 취약점과 체이닝).
🔎 탐지
-
로그 지표:
usb_packet_event로그에 포함된packet_length,device_id,timestamp.- 비정상적으로 큰
packet_length(>256 B) 혹은 예상되지 않은custom_command필드가 기록될 경우.
-
SIEM 쿼리 예시 (Elastic Stack/Kibana DSL):
text1{2 "query": {3 "bool": {4 "must": [5 { "term": { "event.type": "usb_packet_event" }},6 { "range": { "packet_length": { "gt": 256 }}},7 { "exists": { "field": "custom_command" }}8 ],9 "must_not": [10 { "terms": { "device_id": ["authorized_updater_v1","authorized_updater_v2"] }}11 ]12 }13 }14} -
정규식 탐지 (Syslog, Splunk):
text1^.*usb_packet_event.*packet_length=(?:[2-9][0-9]{2,}|[1-9][0-9]{3,}).*custom_command=.+$ -
오탐 튜닝:
- 정상 펌웨어 업데이트 시 발생하는 큰 패킷을 화이트리스트(
device_id)에 추가. packet_length임계값을 현장 환경에 맞춰 512 B 이하로 조정하고, 연속 다중 이벤트(5분 내 3회 이상) 발생 시 알림으로 전환.
- 정상 펌웨어 업데이트 시 발생하는 큰 패킷을 화이트리스트(
🛡️ 완화 방안
-
즉시(긴급 차단)
- 조치: 모든 USB 포트를 “전원 전용”(Power‑Only) 모드로 전환하거나,
usb_host_enable설정을 비활성화한다. - 난이도/영향: 설정 변경만으로 적용 가능(낮음); 충전기 사용자는 외부 장치 연결이 차단되지만 충전 기능은 유지된다.
- 검증: 포트 상태를 조회하는 CLI(
show usb status)에서host_mode=disabled확인.
- 조치: 모든 USB 포트를 “전원 전용”(Power‑Only) 모드로 전환하거나,
-
단기(완화)
- 조치 1: 허용된 USB 장치 ID만 수락하도록 MAC/VID 기반 화이트리스트 적용.
- 난이도 – 중간(정책 파일 수정·재시작 필요); 가용성에 큰 영향 없음.
- 검증 – 허용되지 않은 장치를 연결했을 때 로그에
device_rejected가 기록되는지 확인.
- 조치 2: 펌웨어 레벨에서 패킷 길이 검증 로직을 임시 패치(버퍼 복사 전
if (len > MAX_LEN) reject).- 난이도 – 높음(공급업체 지원 필요); 서비스 재시작 시 잠깐 다운타임 발생 가능.
- 검증 – 테스트 환경에서 과다 길이 패킷을 전송해 거부되는지 확인.
- 조치 1: 허용된 USB 장치 ID만 수락하도록 MAC/VID 기반 화이트리스트 적용.
-
근본(해결)
- 조치: Autel 공식 펌웨어 업데이트 적용 (버그 수정 포함).
- 난이도 – 중간(업데이트 배포·적용 절차 필요); 충전기 재시작 시 짧은 서비스 중단.
- 검증 – 업데이트 후 동일 SIEM 쿼리에서
packet_length초과 이벤트가 사라지는지 확인.
- 조치: Autel 공식 펌웨어 업데이트 적용 (버그 수정 포함).
-
잔여 리스크: 물리적 접근이 완전히 차단되지 않은 경우, 공격자는 전원‑전용 모드에서도 HID/MSC 에뮬레이션을 시도할 수 있다(하지만 현재 버그는 데이터 복사 경로에만 존재). 따라서 현장 보안(잠금·감시 카메라)과 함께 위 완화 조치를 병행해야 한다.
-
인시던트 대응 플레이북
- 알림 발생 →
usb_packet_event로그에서device_id와packet_length확인. - 비허용 장치이면 즉시 포트 차단(
disable usb host). - 현장 담당자에게 물리적 접근 여부 조사, 필요 시 CCTV 검토.
- 악성 페이로드 의심 시 메모리 덤프 수집 및 포렌식 분석(공급업체 협조).
- 임시 차단 해제 전 패치 적용 또는 공식 업데이트 배포 완료 확인.
- 알림 발생 →
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=6.8 · non-KEV · EPSS=0.00344 · exploit=hard · in_scope=None