CVE-2025-11785CVE-2025-11785是Circutor SGE-PLC1000和SGE-PLC50设备中发现的一个严重安全漏洞,CVSS评分高达9.8分(满分10分)。该漏洞存在于设备的Web管理界面中,具体位于'ShowMeterPasswords()'函数。由于该函数在处理用户输入的'meter'参数时存在设计缺陷,允许攻击者通过构造超长字符串来触发基于栈的缓冲区溢出。攻击者无需任何认证即可利用此漏洞,这意味着任何能够访问设备网络接口的攻击者都可以尝试发起攻击。此漏洞的危险性在于其可能被用于远程代码执行,从而完全控制受影响设备。考虑到这些设备通常部署在工业环境中用于能源管理和监控,一旦被攻陷可能导致严重的生产中断、数据泄露或物理设备损坏。漏洞由西班牙国家网络安全研究所(INCIBE)协调披露。
该漏洞的根本原因在于'ShowMeterPasswords()'函数中存在不安全的字符串处理操作。具体来说,函数通过'GetParameter(meter)'获取用户输入的'meter'参数值,然后使用C语言中的'sprintf()'函数将该值直接复制到栈上的固定大小缓冲区中。问题在于'sprintf()'函数不会检查目标缓冲区的容量,而是根据格式字符串完全复制源字符串的内容。当攻击者向'meter'参数发送一个超长的字符串时,该字符串会超出栈缓冲区的边界,覆盖相邻的栈内存区域,包括函数返回地址、帧指针等关键数据结构。通过精心构造溢出数据,攻击者可以覆盖返回地址,使程序跳转到攻击者指定的代码位置,从而执行任意命令或代码。由于该函数位于设备的Web管理接口中,且设备默认允许网络访问,因此攻击者可以通过HTTP请求远程触发此漏洞。整个利用过程无需任何认证凭证,大大降低了攻击门槛。