Security Vulnerability Report
中文
CVE-2026-26070 CVSS 4.6 MEDIUM

CVE-2026-26070

Published: 2026-03-26 15:16:33
Last Modified: 2026-03-31 13:07:32

Description

EVerest is an EV charging software stack. Versions prior to 2026.02.0 have a data race leading to `std::map<std::optional>` concurrent access (container/optional corruption possible). The trigger is an EV SoC update with powermeter periodic update and unplugging/SessionFinished state. Version 2026.2.0 contains a patch.

CVSS Details

CVSS Score
4.6
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linuxfoundation:everest:*:*:*:*:*:*:*:* - VULNERABLE
EVerest < 2026.02.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#include <thread> #include <map> #include <optional> #include <iostream> // Simulating the vulnerable structure in EVerest std::map<int, std::optional<double>> shared_power_data; bool system_running = true; // Simulate EV SoC update thread void ev_soc_update() { while (system_running) { // Thread 1: Writing to shared map shared_power_data[1] = 85.5; std::this_thread::sleep_for(std::chrono::milliseconds(10)); } } // Simulate Powermeter periodic update thread void powermeter_update() { while (system_running) { // Thread 2: Reading/Writing to shared map if (shared_power_data.find(1) != shared_power_data.end()) { auto val = shared_power_data[1]; // Potential race condition during copy or access if (val.has_value()) { shared_power_data[2] = val.value(); } } std::this_thread::sleep_for(std::chrono::milliseconds(15)); } } // Simulate Unplugging/SessionFinished event void trigger_session_finished() { // Wait for a specific time to overlap with other updates std::this_thread::sleep_for(std::chrono::milliseconds(50)); // Thread 3: Modifying/Clearing map while others are active // This operation conflicts with concurrent access in Thread 1 & 2 shared_power_data.clear(); system_running = false; } int main() { std::thread t1(ev_soc_update); std::thread t2(powermeter_update); std::thread t3(trigger_session_finished); t1.join(); t2.join(); t3.join(); std::cout << "PoC executed. Check for crashes or undefined behavior." << std::endl; return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-26070", "sourceIdentifier": "[email protected]", "published": "2026-03-26T15:16:32.680", "lastModified": "2026-03-31T13:07:31.953", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "EVerest is an EV charging software stack. Versions prior to 2026.02.0 have a data race leading to `std::map<std::optional>` concurrent access (container/optional corruption possible). The trigger is an EV SoC update with powermeter periodic update and unplugging/SessionFinished state. Version 2026.2.0 contains a patch."}, {"lang": "es", "value": "EVerest es una pila de software de carga de VE. Las versiones anteriores a 2026.02.0 tienen una condición de carrera de datos que lleva a un acceso concurrente a `std::map` (posible corrupción del contenedor/opcional). El desencadenante es una actualización del SoC del VE con actualización periódica del medidor de potencia y estado de desconexión/SesiónFinalizada. La versión 2026.2.0 contiene un parche."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 4.6, "baseSeverity": "MEDIUM", "attackVector": "PHYSICAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 0.9, "impactScore": 3.6}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:P/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 4.2, "baseSeverity": "MEDIUM", "attackVector": "PHYSICAL", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 0.5, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-362"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linuxfoundation:everest:*:*:*:*:*:*:*:*", "versionEndExcluding": "2026.02.0", "matchCriteriaId": "EB167E67-6808-4F7B-9505-FFF0C02B288C"}]}]}], "references": [{"url": "https://github.com/EVerest/EVerest/security/advisories/GHSA-498x-w527-jp3c", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}