文章总结: 本文档分析了CVE-2025-26858漏洞,该漏洞影响SocomecDIRISDigiwareM-70工业网关。漏洞源于处理ModbusTCP数据包时,modbusServerProcessData函数的长度验证不充分,导致缓冲区溢出。攻击者可通过发送三个特制数据包操纵内存指针并触发拒绝服务。文章详细解释了溢出原理和攻击步骤,建议用户关注厂商补丁以防范风险。
综合评分: 86
文章分类: 漏洞分析,IoT安全,漏洞预警,威胁简报,网络安全
CVE-2025-26858:Socomec 的 DIRIS Digiware M-70 存在溢出导致的拒绝服务漏洞
Ots安全
2025年12月9日 15:19
广东
威胁简报
恶意软件
漏洞攻击
- URL
https://talosintelligence.com/vulnerability_reports/TALOS-2025-2152
- 目标
DIRIS Digiware M-70 1.6.9
- 解释
DIRIS Digiware M-50/M-70 网关可作为工业电力监控系统的接入点,为电气装置内的设备供电并提供通信连接。
CVE-2025-26858 是在处理发送到端口 502 上的 Modbus TCP 服务器的数据包时发生的。
uint32_t modbusServerProcessData(int32_t connNbr, int32_t sock_id, int32_t rx_buf, int32_t rx_len)
[...]
uint32_t r0_6 = (uint32_t)*(uint16_t*)(rx_len - (uint32_t)i + rx_buf + 4); // [1]
packet_length = byte_swap(r0_6);
[...]
if (packet_length < rx_len) // [2]
{
[...]
target_object = getNextItemInList(&data_2001242c[connNbr].head, sock_id); //[3]
[...]
if (target_object)
{
target_object->len = packet_length + 6; // [4]
[...]
Mem_Copy(&*(uint32_t*)((char*)target_object->rx_buf + 0),
rx_len - (uint32_t)i + rx_buf, (uint32_t)target_object->len); // [5]
modbusServerProcessData 该函数从[1]中的Modbus应用协议报头中提取长度字段值,并在[2]中验证其是否小于接收到的数据大小。
然而,[2]中的验证逻辑并未验证[4]中值的增加,导致溢出。
如果攻击者将源缓冲区的最大大小 (0x105) – 1 设置为数据包长度,那么在通过 [2] 检查后,memcpy 大小变为 0x10a 到 [4]。
因此,执行 memcpy 时,会从源缓冲区读取 5 个字节,问题在于目标缓冲区的大小为 0x100,因此会发生 0x10 字节的溢出。
structtarget_object [2]
{
[0]
{
void* nextPtr = 0xd0b20fd8;
void* prevPtr = 0x2001243c;
uint8_t rx_buf [0x100];
uint16_t len;
uint16_t field_10a;
};
[1]
{
void* nextPtr = 0x00000041;
void* prevPtr = 0x20010000;
uint8_t rx_buf [0x100];
uint16_t len;
uint16_t field_10a;
};
}
攻击者可以通过以下三个数据包触发拒绝服务攻击:
第一个数据包将 target_object[1]→nextPtr 值覆盖为 0x00000041。
第二个数据包通过getNextItemInList [ 3]并将数据写入。target_object[1]``rx_buf
第三个数据包getNextItemInList在通过 [3] 查找下一个对象时引用了 target_object[1].nextPtr 值 (0x00000041),从而触发了 DoS 攻击。
END
公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址
排版 编辑 | Ots 小安
采集 翻译 | Ots Ai牛马
公众号 | AnQuan7 (Ots安全)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Ots安全 《CVE-2025-26858:Socomec 的 DIRIS Digiware M-70 存在溢出导致的拒绝服务漏洞》