[방어] 분석 — CVE-2026-13309
The Autel MaxiCharger AC Elite Home NFC stack buffer overflow allows unauthenticated physical attackers to execute arbitrary code, and the highest‑priority immediate mitigation is to disable the NFC interface until a firmware fix is applied.
📋 요약
- 심각도 medium · CVSS 6.8 · EPSS 0.00228 · 악용난이도 hard
🔍 공격 기법
NFC 리더가 카드 응답(APDU)을 수신할 때 고정 길이 스택 버퍼에 복사하는 로직에서 길이 검증이 없으며, 과도하게 긴 페이로드를 전송하면 스택 오버플로우가 발생합니다. 공격자는 물리적으로 NFC 태그를 제시하거나 변조된 카드/스마트폰을 사용해 임의의 데이터를 전송하고, 오버플로우된 리턴 주소를 조작해 장치 내에서 코드 실행 권한을 획득합니다.
악용 가능성: 이 취약점은 AV:P(Physical) 조건에 따라 공격자가 충전기 근처에 직접 존재해야만 이용할 수 있으므로 물리적 접근이 가장 큰 전제조건입니다. 그러나 일단 NFC 리더기에 가까이 다가가면 AC:L(Low complexity)으로 복잡한 사전 준비 없이도 조작된 카드 응답을 제공하면 되고, PR:N·UI:N에 의해 권한이나 사용자의 추가 동작이 전혀 요구되지 않으므로 성공 확률은 매우 높습니다. 따라서 실제 난이도는 “물리적 접근 필요 → 낮은 기술 복잡도”라는 이중 구조로, 물리적 방어가 미흡할 경우 공격이 손쉽게 이루어질 수 있습니다. EPSS 값이 0.00228(0.228 %)으로 낮아 현재까지 악용 사례가 거의 보고되지 않았지만, 이는 해당 제품이 제한된 배포 환경에 머물러 있어 관측 데이터가 적은 것이 원인이며, 실제 위협 가능성을 완전히 배제하지 못합니다. KEV 목록에 포함되지 않은 점은 아직 대규모 공격으로 전환되지는 않았음을 의미하지만, 물리적 접근만 확보하면 즉시 실행 가능한 NFC‑based buffer overflow가 존재하므로 위험 수준을 무시해서는 안 됩니다. 노출된 공격 표면은 충전기의 NFC 인터페이스와 카드 응답 처리 로직이며, 이 엔드포인트를 통해 조작된 데이터가 고정 길이 스택 버퍼에 기록되어 오버플로우가 발생합니다. 따라서 방어자는 물리적 접근 제어와 NFC 통신 로그 감시를 우선적으로 고려해야 합니다.
💥 영향 분석
- 성공 시 공격자는 충전기 운영체제 레벨에서 코드를 실행할 수 있어
- 충전 제어권 탈취 (충전 중지·재시작, 과다 전력 공급)
- 결제/인증 데이터 변조 또는 유출
- 펌웨어 재플래싱 및 서비스 거부(DoS)
- 영향을 받는 장치는 공공 EV 충전소에 다수 배치되므로 공격 성공 시 광범위한 비즈니스·안전 위험이 발생합니다.
🔗 관련 취약점·체이닝
- 동일 제품군의 다른 NFC 파싱 함수에서
memcpy/strcpy무검증 사용 사례와 연계될 수 있습니다. - OTA 서명 검증 우회가 가능하면 악성 펌웨어로 체인하여 영구적인 시스템 장악이 가능합니다.
🔎 탐지
- 로그 지표: 대부분의 Autel 충전기에서는
/var/log/nfc.log혹은 syslog에NFC_RX이벤트가 기록됩니다. 주요 필드timestampapdu_len(응답 길이)payload_hex(수신 데이터)
- 탐지 규칙 예시
- 과도한 APDU 길이 탐지
1source="nfc.log" | regex apdu_len="\d+" 2| where tonumber(apdu_len) > 128 1 (128 바이트를 초과하는 경우 경고) 2. 특정 패턴 반복 발생 – 동일 payload_hex가 5분 이내 3회 이상 등장하면 의심
1source="nfc.log" | stats count by payload_hex, bin(_time,5m) 2| where count >= 3- 비정상적인 명령 코드 – APDU 헤더가
0xFF로 시작하는 경우 (대부분 정상 카드에서는 사용되지 않음)
1source="nfc.log" | regex payload_hex="^ff"- 오탐 튜닝
- 정상적인 고용량 NFC 태그(예: 교통카드 업데이트)에서 발생할 수 있는 길이 초과를 허용하려면
apdu_len임계값을 제품 매뉴얼에 명시된 최대 크기(보통 64~96 B)로 조정합니다. - 동일 payload 반복 규칙은 정기적인 펌웨어 업데이트 시 발생할 수 있으므로, 업데이트 기간에는 임계값을 일시적으로 높이고 알림만 생성하도록 합니다.
- 정상적인 고용량 NFC 태그(예: 교통카드 업데이트)에서 발생할 수 있는 길이 초과를 허용하려면
🛡️ 완화 방안
| 단계 | 내용 | 구현 난이도 | 운영 영향 | 검증 방법 |
|---|---|---|---|---|
| 즉시(긴급 차단) | 관리 콘솔 또는 CLI에서 nfc_interface = disabled 설정을 적용하고, 네트워크 레벨에서는 NFC 전용 UART/USB 포트를 차단하는 ACL을 추가한다. | 낮음 – 설정 변경만 필요 | NFC 기반 결제·인증 기능 일시 중지 (물리적 충전은 유선 카드 또는 앱으로 대체) | NFC 로그에 NFC_RX 이벤트가 사라지는지 실시간 확인 |
| 단기(완화) | 1. 펌웨어 레벨에서 입력 길이 검증을 강제하는 커스텀 패치를 적용 (버퍼 크기 초과 시 오류 반환).<br>2. 스택 쿠키/Canary를 활성화하고, memcpy·strcpy 를 메모리 안전 함수(memmove_s, strlcpy) 로 교체.<br>3. OTA 서명 검증을 강화하고, 모든 펌웨어 이미지에 SHA‑256 해시와 디지털 서명을 요구한다. | 중간 – OEM 제공 SDK 혹은 커스텀 빌드 필요 | 일부 기능(예: 빠른 충전 프로파일)에서 성능 저하 가능성 존재 | 테스트 환경에서 변조된 NFC 페이로드를 전송해 오버플로우가 발생하지 않는지 Fuzzing 수행 |
| 근본(해결) | Autel 공급업체가 제공하는 공식 패치를 적용한다. 패치에는: <br>• 고정 길이 버퍼를 동적 할당으로 교체<br>• 모든 NFC 파싱 루틴에 입력 검증 로직 삽입<br>• 보안 부팅 및 무결성 체크 강화 | 높음 – 공급업체 릴리스 대기 필요 | 정상적인 NFC 결제·인증 복구, 서비스 가용성 유지 | OTA 업데이트 후 버전 확인, nfc.log에서 정상 APDU 처리 로그와 함께 취약점 탐지 규칙이 트리거되지 않음을 검증 |
| 잔여 리스크 | 패치 적용 전까지는 NFC 비활성화 상태를 유지해야 하며, 물리적 접근을 완전히 차단할 수 없는 공공 환경에서는 지속적인 로그 모니터링과 정기 무결성 검사(파일 해시)로 보조 방어가 필요합니다. |
인시던트 대응 플레이북 (요약)
- NFC 인터페이스 비활성화 여부 확인 → 설정이 활성이면 즉시 차단.
/var/log/nfc.log에서 최근 5분 간apdu_len > 128이벤트 탐지 여부 조사.- 의심되는 장치를 네트워크 격리하고 메모리 덤프(
/proc/kcore등) 수집. - 변조된 NFC 태그를 재현해 내부 테스트 환경에서 오버플로우 재현 여부 확인.
- 필요 시 OTA 서명 검증 로그와 펌웨어 해시 무결성 검사 결과 보고.
우선순위 결정 근거
- 다중 소스(공개 CVE, ZDI)에서 일관성이 확인됐으며(CVE-2026-13309 ↔ ZDI‑CAN‑29044).
- EPSS = 0.00228은 실제 악용 가능성이 낮지만, 물리적 접근이 가능한 공공 충전소 특성상 위험도가 상승하므로 “monitor” 우선순위가 부여되었습니다(‘CVSS 6.8·non‑KEV·exploit hard’).
- 따라서 즉시 차단 → 단기 완화 → 패치 적용 순으로 진행하는 것이 가장 효율적인 대응 경로입니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=6.8 · non-KEV · EPSS=0.00228 · exploit=hard · in_scope=None