EVerest EV Charging Software Data Race Vulnerability in OCPP 2.0.1 Handling

Vulnerability

A data race vulnerability has been identified in the EVerest EV charging software stack, specifically in versions prior to 2026.02.0. The issue arises from concurrent access to a `std::map<std::optional>` container, which can lead to corruption of the container or its optional values. This vulnerability is triggered by an Electric Vehicle State of Charge (SoC) update, combined with a periodic powermeter update, and the unplugging of the vehicle, which signals the end of a charging session. The affected component is the `OCPP201::evse_soc_map`, which manages SoC data for electric vehicles.

Impact

Exploitation of this vulnerability causes a data race, leading to a reported concurrency issue where the state of the `evse_soc_map` can become corrupted or throw exceptions due to improper handling of optional values.

Reproduction

The vulnerability can be reproduced by initiating an EV SoC update while a powermeter periodic update is also in progress, and then unplugging the vehicle, which triggers the SessionFinished state. This sequence creates a race condition as the powermeter callback (which reads SoC values) and the EVInfo callback (which writes SoC values) can interfere with each other, especially when the SessionFinished event resets the SoC data, all occurring simultaneously from different threads.

Remediation

Users should update to EVerest version 2026.02.0, which includes a patch for this vulnerability.

Added: Mar 26, 2026, 3:33 PM
Updated: Mar 26, 2026, 3:33 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
2.5
exploitability
3.9
remediation
0.0
relevance
4.7
threat
4.8
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.