CVE-2025-55094CVE-2025-55094是Eclipse基金会ThreadX操作系统网络支持模块NetX Duo中的一个高危安全漏洞。该漏洞存在于NetX Duo 6.4.4之前的版本中,具体位于_nx_icmpv6_validate_options()函数中。当系统处理包含ICMPv6选项的数据包时,该函数未能正确验证输入数据的长度边界,导致可能出现越界读取(Out-of-Bounds Read)问题。
NetX Duo是ThreadX实时操作系统(RTOS)的双协议栈(IPv4/IPv6)网络协议栈实现,广泛应用于嵌入式设备和物联网(IoT)产品中。该漏洞由Eclipse开发者[email protected]发现并报告。攻击者可以通过网络远程发送精心构造的ICMPv6数据包来触发该漏洞,无需任何身份认证或用户交互。
该漏洞的CVSS 3.1评分为7.5分,属于高危级别。从CVSS向量可以看出,攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需特权(PR:N),无需用户交互(UI:N),作用域未改变(S:U),对机密性影响为高(C:H),对完整性和可用性无影响(I:N, A:N)。这意味着攻击者可以利用该漏洞读取受影响的NetX Duo设备内存中的敏感信息,可能导致信息泄露。虽然该漏洞不会直接导致系统崩溃或代码执行,但内存信息泄露可能为后续攻击提供重要情报。
NetX Duo的_nx_icmpv6_validate_options()函数负责验证ICMPv6数据包中选项字段的合法性。ICMPv6协议在邻居发现、路径MTU发现等机制中广泛使用选项字段,选项以类型-长度-值(TLV)格式编码。
漏洞的根本原因在于该函数在遍历和验证ICMPv6选项时,未能充分检查选项数据的边界条件。当攻击者构造一个包含畸形ICMPv6选项的数据包时,例如选项长度字段被设置为超出实际数据包长度的值,或者选项链中的长度字段导致指针越过数据包缓冲区边界时,函数会尝试读取缓冲区之外的内存内容。
利用方式方面,攻击者只需通过网络向目标设备发送一个精心构造的ICMPv6数据包即可触发该漏洞。具体的PoC构造思路如下:
1. 构造一个ICMPv6 Echo Request或其他类型的ICMPv6消息;
2. 在消息中附加畸形选项,选项的Type字段设置为有效值(如Source Link-Layer Address选项类型1,或Prefix Information选项类型3等);
3. 将选项的Length字段设置为不合理的值(例如0或超过剩余数据包长度的值);
4. 当NetX Duo的_nx_icmpv6_validate_options()函数处理该数据包时,会基于不可信的Length字段计算读取偏移,导致越界读取。
该漏洞的影响范围包括所有使用NetX Duo 6.4.4之前版本的ThreadX设备。由于ThreadX广泛应用于工业控制、医疗设备、消费电子等嵌入式领域,该漏洞的潜在影响面较大。