剖析EVerest栈缓冲区溢出漏洞CVE-2025-68137:整数溢出如何导致远程代码执行

3 阅读4分钟

CVE-2025-68137: CWE-120: 在EVerest everest-core中不检查输入大小的缓冲区复制(“经典缓冲区溢出”)

严重性:高 类型:漏洞 CVE:CVE-2025-68137

EVerest 是一个电动汽车(EV)充电软件栈。在2025.10.0版本之前,发生在 SdpPacket::parse_header() 函数中的整数溢出问题,会导致在读取完一个大小为8字节的完整数据包头后,当前缓冲区长度被错误地设置为7。待读取的剩余长度通过当前长度减去数据包头长度计算得出,这会产生一个负值。由于参数预期类型为无符号的 size_t,该负值会被解释为 SIZE_MAX(或略小)。根据服务器使用的是普通TCP还是TLS,这将导致无限循环或栈缓冲区溢出。2025.10.0版本修复了此问题。

技术摘要

CVE-2025-68137是一个经典的缓冲区溢出漏洞,归类于CWE-120和CWE-835,影响EVerest EV充电软件栈的everest-core组件。根本原因是处理数据包头的函数 SdpPacket::parse_header() 中存在整数溢出。具体来说,在读取完一个8字节的完整数据包头后,由于整数溢出,当前缓冲区长度被错误地设置为7。当待读取的剩余长度计算为当前长度减去数据包头长度时,结果是一个负值。由于长度被存储为无符号的 size_t,该负值被解释为一个非常大的正数(SIZE_MAX 或略小)。根据服务器传输层的不同,此错误计算会导致两种可能的结果:如果服务器使用普通TCP,代码将进入无限循环读取数据;如果服务器使用TLS,过大的长度将导致栈缓冲区溢出。这两种情况都可在无需身份验证或用户交互的情况下被远程利用,允许攻击者执行任意代码、导致拒绝服务或破坏敏感数据。该漏洞影响2025.10.0之前的所有everest-core版本,该版本包含了修复程序。尽管目前尚未有已知的在野利用,但其高达8.4的CVSS评分反映了该漏洞的重大影响和复杂性。此漏洞突显了在电动汽车充电系统等关键基础设施软件的协议解析中进行严格输入验证和安全整数运算的重要性。

潜在影响

对于欧洲组织而言,此漏洞对快速扩张的电动汽车充电基础设施的安全性和可靠性构成重大风险。利用该漏洞可能导致远程代码执行,使攻击者能够中断充电服务、操纵计费数据或获得对内部网络的持久访问权限。这可能破坏对EV基础设施提供商的信任并导致运营中断。机密性破坏可能暴露敏感的用户和运营数据,而完整性违规可能助长欺诈活动或破坏行为。无限循环或崩溃导致的可用性影响可能降低服务质量或造成服务中断。考虑到电动汽车充电在欧洲能源转型中的关键作用,此类中断可能对交通和能源部门产生连锁反应。使用易受攻击版本EVerest everest-core运营或管理电动汽车充电站的组织必须将此视为高优先级威胁。

缓解建议

主要的缓解措施是将所有受影响的EVerest everest-core部署升级到2025.10.0或更高版本,其中整数溢出和缓冲区溢出问题已得到修复。组织应审核其电动汽车充电软件版本以识别易受攻击的实例。此外,实施网络级防护,如严格的防火墙规则和入侵检测系统,以监控针对电动汽车充电协议的异常流量模式。采用运行时保护措施,如栈金丝雀(stack canaries)和地址空间布局随机化(ASLR),以降低利用成功率。对所有协议解析器进行彻底的输入验证和模糊测试,以主动检测类似漏洞。制定针对电动汽车基础设施的特定事件响应计划,以快速隔离和修复受损系统。与供应商协调,进行及时的补丁管理和安全公告发布。最后,考虑将电动汽车充电网络与企业关键基础设施进行隔离,以限制在遭到入侵情况下的横向移动。

受影响国家

德国、法国、荷兰、挪威、英国、瑞典、比利时 aeYFGlNGPch5/i0AskAWpmMVXj3lzK9JFM/1O1GWF7B4QpGctQojKRgEpISq19b8eBj6zX/qJ4kFMj1RSzC4DRFzPCUcytTqrVu7QxVQirIooE+9Geu7RSYWKdh8BRQ5