CVE-2025-5829
Executive Summary
CVE-2025-5829 is a critical stack-based buffer overflow vulnerability in the Autel MaxiCharger AC Wallbox Commercial electric vehicle (EV) charger. The flaw resides in the device’s handling of JSON messages, allowing a physically present attacker to trigger remote code execution without authentication. The vulnerability is assigned a CVSS score of 6.8 (Medium) but carries high impact due to the potential for full device compromise. No public exploit code or patch is currently available. The EPSS score is 0.0%, indicating low exploitation probability in the wild, but the risk remains significant for targeted attacks.
This vulnerability is not related to any open-source package or WordPress plugin; it is a proprietary embedded system issue.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Base Score: 6.8 (Medium)
- Attack Vector: Physical (AV:P) – attacker must be physically present at the charger.
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: None (PR:N) – no authentication needed.
- User Interaction: None (UI:N) – no user action required.
- Scope: Unchanged (S:U) – vulnerability affects only the charger.
- Confidentiality Impact: High (C:H) – full device data access.
- Integrity Impact: High (I:H) – arbitrary code execution.
- Availability Impact: High (A:H) – potential denial of service.
Threat Level: High for physical access scenarios. The lack of authentication and low complexity make it attractive for targeted attacks on EV charging infrastructure.
Deep Dive & Mechanics
The vulnerability is a classic stack-based buffer overflow (CWE-121) in the JSON message parsing routine of the Autel MaxiCharger AC Wallbox Commercial. The device listens for JSON messages over its network interface (likely Ethernet or Wi-Fi). When processing a JSON payload, the software copies user-supplied data into a fixed-length stack buffer without proper length validation. By sending a crafted JSON message with an overly long string value, an attacker can overflow the buffer, overwrite the return address, and redirect execution to attacker-controlled shellcode.
Key technical details:
- Attack Vector: Physical presence required (e.g., connecting a laptop to the charger’s network port or using a wireless interface).
- Trigger: Sending a specially crafted JSON message to the charger’s management interface.
- Impact: Full device compromise, including ability to modify charging parameters, exfiltrate data, or use the charger as a pivot point for further attacks.
- No Authentication: The vulnerable endpoint does not require any credentials.
Vulnerable vs. Patched Code
Since no patch is available, a hypothetical vulnerable code snippet is provided for illustration:
Vulnerable Code (C):
void process_json_message(char *json) {
char buffer[256];
// Vulnerable: no length check
strcpy(buffer, json);
// ... further processing
}
Patched Code (Hypothetical):
void process_json_message(char *json) {
char buffer[256];
// Safe: limit copy length
strncpy(buffer, json, sizeof(buffer) - 1);
buffer[sizeof(buffer) - 1] = '\0';
// ... further processing
}
The fix involves using strncpy or similar bounded copy functions to prevent overflow.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Physical access to the Autel MaxiCharger AC Wallbox Commercial.
- A device capable of sending raw TCP/UDP packets (e.g., laptop with Ethernet or Wi-Fi).
- Knowledge of the charger’s IP address (default or discovered via network scanning).
Exploitation Steps:
- Network Discovery: Use
nmapto scan for the charger’s IP (e.g.,nmap -sn 192.168.1.0/24). - Craft Payload: Create a JSON message with an overly long string in a vulnerable field. Example:
{"command": "AAAA...AAAA"} // 300+ 'A's - Send Payload: Use a tool like
netcator a custom Python script:import socket payload = '{"command": "' + 'A'*300 + '"}' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('192.168.1.100', 80)) # Example port s.send(payload.encode()) s.close() - Observe Crash: The charger may reboot or become unresponsive, indicating successful overflow.
- Refine Exploit: Replace the 'A' pattern with shellcode to achieve code execution.
Note: No public exploit code is available; this is a conceptual guide.
Blue Team (Defense)
Detection:
- Monitor network traffic for unusually long JSON payloads sent to the charger.
- Use intrusion detection systems (IDS) to flag oversized packets.
- Enable logging on the charger (if supported) to capture crash events.
Mitigation:
- Isolate the charger on a separate VLAN with strict access controls.
- Disable unused network services on the charger.
- Apply firmware updates as soon as they become available.
- Use network segmentation to limit physical access to the charger’s network port.
Indicators of Compromise (IOCs)
Network IOCs:
- Unusually large JSON payloads (>256 bytes) sent to the charger’s IP on port 80/443 or other management ports.
- Repeated connection attempts from a single source to the charger.
- Device reboots or crashes coinciding with network activity.
Host IOCs:
- Unexpected changes in charger configuration (e.g., charging schedules, power limits).
- Presence of unknown processes or binaries on the charger (if accessible).
- Log entries indicating buffer overflow or segmentation faults.
File IOCs:
- No specific file hashes available; monitor for unauthorized firmware modifications.
Detection Engineering
YARA Rule
rule CVE_2025_5829_Autel_BufferOverflow {
meta:
description = "Detects potential exploitation of CVE-2025-5829 in Autel MaxiCharger"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-5829"
strings:
$json_payload = /{"command":\s*"[A-Za-z0-9]{257,}"}/ // Overly long string
$overflow_pattern = /[A-Za-z0-9]{300,}/ // Generic long string
condition:
$json_payload or $overflow_pattern
}
Sigma Rule
title: CVE-2025-5829 Autel MaxiCharger Buffer Overflow Attempt
id: 8f3b2c1a-5d7e-4f9b-8a2c-1e3d5f7g9h0i
status: experimental
description: Detects network traffic targeting Autel MaxiCharger with oversized JSON payloads
author: Valters IT
date: 2025-04-10
logsource:
category: network
product: suricata
detection:
selection:
dest_port: 80
payload_length: '>256'
payload_content: '{"command":'
condition: selection
falsepositives:
- Legitimate large configuration updates (unlikely)
level: high
Suricata Rule
alert tcp any any -> $AUTEL_CHARGER 80 (msg:"CVE-2025-5829 Autel MaxiCharger Buffer Overflow Attempt"; flow:to_server; content:"{"command":"; depth:10; byte_test:1,>,256,0; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the charger: Place it on a separate VLAN with strict firewall rules.
- Disable remote management: If not required, turn off network services.
- Monitor logs: Enable and review device logs for crash events.
Long-Term Fix:
- Await an official firmware patch from Autel. Contact Autel support for updates.
- Implement input validation and bounds checking in the JSON parser.
- Consider replacing the device if no patch is released.
Workaround:
- Use a network-based intrusion prevention system (IPS) to block oversized JSON payloads.
- Restrict physical access to the charger’s network port.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.