IPBUF安全漏洞报告
English
CVE-2026-29044 CVSS 5.0 中危

CVE-2026-29044 EVerest授权撤回绕过漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-29044
漏洞类型
逻辑漏洞
CVSS评分
5.0 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
EVerest

相关标签

逻辑漏洞EVerest权限绕过竞态条件

漏洞概述

EVerest电动汽车充电软件堆栈在2026.02.0版本之前存在逻辑漏洞。当WithdrawAuthorization请求在TransactionStarted事件之前被处理时,AuthHandler会错误地判断事务未激活,仅调用deauthorize回调而未发送StopTransaction指令。攻击者可利用此时序问题绕过授权撤回机制,导致在授权失效后充电过程仍能继续,存在安全隐患。

技术细节

该漏洞源于EVerest AuthHandler模块在处理授权撤回时的逻辑缺陷。正常流程下,撤回授权应触发充电停止。但在特定时序下(WithdrawAuthorization先于TransactionStarted到达),系统判定`transaction_active`为false,仅执行`Charger::deauthorize()`逻辑,未在Charging状态下发送必要的OCPP StopTransaction消息。这意味着物理层的充电过程并未被中断。由于缺少强制停止指令,充电桩将继续供电,导致用户可以绕过计费或权限控制继续使用充电服务。这本质上是一个由事件处理顺序不当导致的逻辑漏洞,允许攻击者通过控制请求到达的时间点来维持非授权的充电状态。

攻击链分析

STEP 1
步骤1:启动充电会话
攻击者在EVerest充电桩上发起充电请求,触发StartTransaction流程。
STEP 2
步骤2:竞态条件触发
在系统内部处理TransactionStarted事件之前,攻击者迅速发送WithdrawAuthorization请求。
STEP 3
步骤3:逻辑绕过
AuthHandler检测到transaction_active为false,仅执行deauthorize操作,未发送StopTransaction指令给充电硬件。
STEP 4
步骤4:维持充电状态
由于未收到停止指令,物理充电过程继续进行,导致授权被撤回后依然能免费或违规充电。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import time import asyncio # This is a conceptual PoC to demonstrate the race condition. # It simulates sending WithdrawAuthorization before TransactionStarted. async def exploit_everest(): print("[*] EVerest CVE-2026-29044 PoC Simulation") print("[*] Target: EVerest < 2026.02.0") # 1. Normal Start Transaction Request print("[+] Step 1: Sending StartTransaction request...") # Assume this triggers the internal process but the event is delayed # 2. Malicious Timing: Send WithdrawAuthorization immediately # This is the core of the exploit: race the internal event processing print("[+] Step 2: Sending WithdrawAuthorization (Race Condition Triggered)...") # Simulate system logic vulnerability transaction_active = False # Because TransactionStarted event hasn't been processed yet if not transaction_active: print("[!] System Logic Flaw: AuthHandler sees transaction_active=False") print("[!] System calls: withdraw_authorization_callback -> Charger::deauthorize()") print("[-] System FAILS to send: StopTransaction") else: print("[-] Patched behavior: StopTransaction would be sent.") print("[+] Step 3: TransactionStarted event finally processed.") print("[*] Result: Charging continues without authorization (Bypass Successful).") if __name__ == "__main__": asyncio.run(exploit_everest())

影响范围

EVerest < 2026.02.0

防御指南

临时缓解措施
建议立即升级至EVerest 2026.02.0版本以修复此逻辑缺陷。在无法立即升级的情况下,应在后台系统实施双重校验机制,对比授权状态与实际充电状态,若发现授权已撤回但仍在充电,应远程强制切断电源。

参考链接

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