CVE-2025-11788
CriticalCVSS 9.8Exploitation Probability (EPSS)
Low risk23th percentile - higher than 23% of all known CVEs
Summary
A heap-based buffer overflow vulnerability exists in Circutor SGE-PLC1000/SGE-PLC50 v9.0.2 within the 'ShowSupervisorParameters()' function. Unlimited user input is copied to a fixed-size buffer via 'sprintf()' without size validation, allowing an attacker to supply an excessively large 'meter' parameter.
Risk Assessment
An attacker can trigger a buffer overflow, potentially leading to arbitrary code execution or device crash.
Recommendation
Update the device firmware to a fixed version or restrict access to the vulnerable function.
Other vulnerabilities in Circutor SGE-PLC1000/SGE-PLC50
See all- CVE-2025-11786Critical
A stack-based buffer overflow vulnerability exists in Circutor SGE-PLC1000/SGE-PLC50 v9.0.2 within the 'SetUserPassword()' function. The 'newPassword' parameter is embedded directly into a shell command string via 'sprintf()' without sanitisation and executed using 'system()', allowing injection of arbitrary shell commands.
- CVE-2025-11785Critical
Stack-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 version 9.0.2. In the 'ShowMeterPasswords()' function, user input is copied to a fixed-size buffer via 'sprintf()' without size validation. An attacker can provide an overly long 'meter' parameter, leading to buffer overflow.
- CVE-2025-11784Critical
Stack-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 version 9.0.2. In the 'ShowMeterDatabase()' function, user input is copied to a fixed-size buffer via 'sprintf()' without size validation. An attacker can provide an overly long 'meter' parameter, leading to buffer overflow.
- CVE-2025-11783Critical
Stack-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 version 9.0.2. In the 'AddEvent()' function, user-controlled username input is copied to a fixed-size buffer (48 bytes) without boundary checking. This can lead to memory corruption and potential remote code execution.
- CVE-2025-11782Critical
Stack-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 version 9.0.2. The 'ShowDownload()' function uses 'sprintf()' to format a string that includes user-controlled input from 'GetParameter(meter)' in a fixed-size buffer 'acStack_4c' (64 bytes) without checking length. An attacker can provide an overly long 'meter' parameter exceeding the buffer size.
- CVE-2025-11780Critical
Stack-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 version 9.0.2. In the 'showMeterReport()' function, user input is copied to a fixed-size buffer via 'sprintf()' without size validation. An attacker can provide an overly long 'meter' parameter, leading to buffer overflow.
- CVE-2025-11779Critical
Stack-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 version 9.0.2. The 'SetLan' function is invoked when a new configuration is applied, activated by a management web request to 'index.cgi'. Parameters are not sanitized, which could lead to command injection.
- CVE-2025-11778Critical
Stack-based buffer overflow in Circutor SGE-PLC1000/SGE-PLC50 version 0.9.2. This vulnerability allows an attacker to remotely exploit memory corruption through the 'read_packet()' function of the TACACSPLUS implementation.
- CVE-2025-11789High
Out-of-bounds read vulnerability in Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. The 'DownloadFile' function converts a parameter to an integer using 'atoi()' and then uses it as an index in the 'FilesDownload' array with '(&FilesDownload)[iVar2]'. If the parameter is too large, it will access memory beyond the limits.
- CVE-2025-11787High
Command injection vulnerability in the operating system of Circutor SGE-PLC1000/SGE-PLC50 v9.0.2 through the 'GetDNS()', 'CheckPing()' and 'TraceRoute()' functions. This allows execution of arbitrary commands on the system.
Original NVD description (English source)
Heap-based buffer overflow vulnerability in Circutor SGE-PLC1000/SGE-PLC50 v9.0.2. In the 'ShowSupervisorParameters()' function, there is an unlimited user input that is copied to a fixed-size buffer via 'sprintf()'. The 'GetParameter(meter)' function retrieves the user input, which is directly incorporated into a buffer without size validation. An attacker can provide an excessively large input for the 'meter' parameter.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

