Short: Race to Charge: Concurrency Bugs and State Integrity Violations in EV Charging Infrastructure

Jaeyeong Lee, Independent Researcher; Seonhyeong Lee, SK Shieldus

Electric vehicle (EV) charging infrastructure must juggle hardware control, communication protocols, and cloud-based management all at once, relying on complex event-driven multithreaded software underneath. This paper examines concurrency vulnerabilities in everest-core, an open-source charging framework hosted under the Linux Foundation Energy umbrella. Through manual code auditing of its threading and callback architecture, combined with sanitizer-assisted reproduction experiments, we uncovered 11 concurrency vulnerabilities, all of which now have public CVE IDs. The vulnerabilities fall into three recurring patterns: inconsistent locking discipline, lack of atomicity in state transitions, and missing state validation on asynchronous events. We confirmed eight data races using TSan, ASan, and UBSan, and the remaining three state integrity violations through logic-based proof-of-concept exploits. These bugs can lead to unauthorized charging that persists after a remote stop command, authorization withdrawal bypass, and denial of service through memory corruption.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@inproceedings {320275,
author = {Jaeyeong Lee and Seonhyeong Lee},
title = {Short: Race to Charge: Concurrency Bugs and State Integrity Violations in {EV} Charging Infrastructure},
booktitle = {4th USENIX Symposium on Vehicle Security and Privacy (VehicleSec 26)},
year = {2026},
isbn = {978-1-939133-56-4},
address = {Baltimore, MD},
pages = {209--217},
url = {https://www.usenix.org/conference/vehiclesec26/presentation/lee},
publisher = {USENIX Association},
month = aug
}

Presentation Video