top of page

MZ Automation 的 libIEC61850 将 CISA 网络安全指南推向考验

MZ Automation 发布了 libIEC61850 1.6.2,此前四项漏洞暴露出 CISA 面向工业网络的网络安全指南中存在尖锐矛盾。这些漏洞影响 1.0.0 至 1.6.1 版本,可导致处理关键电力系统通信的服务崩溃。其中一项漏洞还可在特定内存配置下支持任意代码执行。

CISA 于 2026 年 7 月 23 日发布了工业控制系统公告。该机构表示,未经身份验证且位于相邻网络位置的攻击者,可能干扰或破坏保护、可视化和控制功能。这些后果意味着,这并非一次常规的开源补丁周期。

核心矛盾很明确。运营方依赖标准化、可互操作的通信来连接变电站及其他关键环境。但这种连接性也会让复杂的消息解析器暴露于来自受损或未经授权系统的流量之中。

MZ Automation 在公告发布当天推出了 1.6.2 版本。该更新包含相关漏洞修复,但在运营技术环境中安装库更新,很少是一步到位的过程。资产发现、供应商验证、兼容性测试和维护排期,都可能延长暴露窗口。

CISA 网络安全公告指出四条攻击路径

由于易受攻击的解析器位于支撑保护与控制工作流程的软件中,该公告使畸形协议流量成为运营层面的风险。

受影响组件为 libIEC61850,即 MZ Automation 以 C 语言实现的 IEC 61850 通信服务库。IEC 61850 是一套用于在电力自动化系统内交换数据的标准,通常支持变电站监控、保护协调、事件报告和设备控制。

这份工业公告涵盖 1.0.0 至 1.6.1 版本。相关部署似乎遍布全球的关键制造、能源和交通系统。MZ Automation 总部位于德国。

本次披露涉及四个 CVE:

  • CVE-2026-49035 涉及通过精心构造的 MMS Initiate 请求触发的基于堆的缓冲区溢出。MMS 即 Manufacturing Message Specification,用于在工业设备与应用之间传输结构化的客户端—服务器通信。

  • CVE-2026-50039 涉及通过 MMS ReadRequest 触发的基于栈的缓冲区溢出。畸形请求可破坏内存并导致受影响进程崩溃。

  • CVE-2026-50103 涉及共享 GOOSE 和 R-GOOSE 解析器对无效结构的处理问题。精心构造的帧可导致订阅应用崩溃。

  • CVE-2026-50032 涉及 MMS Write Named Variable List 处理程序中的 NULL 指针解引用。空的 listOfData 字段可导致服务器终止。

GOOSE 指 Generic Object Oriented Substation Event,用于分发时间敏感型事件,包括与保护和控制相关的状态变化。R-GOOSE 则提供超出本地以太网网段的可路由传递能力。

根据已记录的场景,其中三项漏洞主要威胁可用性。CVE-2026-49035 的影响更广,因为研究人员演示了在禁用 Address Space Layout Randomization(ASLR)时实现远程代码执行。

ASLR 通过随机化内存位置来增加可靠代码执行的难度。启用 ASLR 并不能消除底层漏洞。CVE 记录指出,启用 ASLR 的配置仍可能遭遇内存损坏或拒绝服务。

CVE-2026-49035 获得 CVSS 3.1 评分 8.1,以及 CVSS 4.0 评分 9.2。较新的框架将其评为严重级别。在 CVSS 3.1 下,其攻击复杂度较高,且成功执行代码取决于特定的内存保护条件。

其余评分区分了不同的崩溃路径。CVE-2026-50039 和 CVE-2026-50032 均获得 7.5 的 CVSS 3.1 评分。CVE-2026-50103 获得 6.5 的 CVSS 3.1 评分,因为其攻击向量为相邻网络,而非可广泛通过网络访问。

这些评分有助于分诊,但无法衡量所有运营后果。测试环境中的短暂中断,与生产变电站网关中发生同样中断,影响截然不同。架构、冗余、流程监督和恢复程序共同决定实际影响。

此次披露并未指出攻击者已经在运营环境中利用这些漏洞。CISA 对已发布 CVE 记录的补充信息将利用情况列为无。这一区别很重要,因为技术上的可利用性与已观察到的恶意使用是两个不同的问题。

不过,尚无已知利用并不意味着延迟修复没有风险。漏洞细节现已公开,受影响版本范围已知,修复内容也可被审查。防御方应假定,攻击者对这些漏洞的理解会在披露后不断提升。

为什么 libIEC61850 服务具有不同寻常的运营风险

当受影响进程为操作员或保护系统提供及时且可信的信息时,解析器崩溃的影响会更大。

libIEC61850 为嵌入式系统和传统计算机实现 MMS、GOOSE、Sampled Values 及其他服务。MZ Automation 表示,该库出现在商业软件和设备中,但并未公布完整的部署清单。

该项目的库文档介绍了对客户端、服务器、报告、数据访问、控制模型、日志记录和数据发现的支持。它可运行于 Linux、Windows 和 macOS,并旨在实现跨嵌入式平台的可移植性。

这种灵活性使暴露面评估更加复杂。一些组织将该库直接编译进内部应用;另一些则通过设备、网关、模拟器或监控软件中的传递依赖获得它。

因此,运营方可能在产品界面中看不到 libIEC61850 的名称,却仍在使用它。设备供应商也可能维护分支版本,或固定使用较旧的发行版。标准软件资产清单工具可能会遗漏此类静态链接组件。

这些攻击路径还跨越了多重信任边界。MMS 服务器可能接收来自在网络层面看似已获授权的客户端请求。客户端也可能处理来自已被攻陷或遭冒充服务器的响应。

GOOSE 流量呈现另一种模式。它通常运行在第 2 层,消息在本地以太网域内传递。网络相邻性限制了攻击者的起始位置,但并不保证可信。

攻击者可能通过受损的工程工作站、维护笔记本电脑、交换机端口、远程访问路径或其他工业设备获得这一位置。配置错误的虚拟网络也可能将意外系统置于受信任的广播域中。

CVE-2026-50103 表明,仅靠网络分段无法验证内容。易受攻击的解析器可能在精心构造的 GOOSE 帧中遇到畸形的类型—长度—值字段,即 TLV。即使防火墙允许预期的协议流量,也仍可能放行恶意消息。

潜在后果不止于单个进程停止。IEC 61850 应用可能提供测量数据、告警、事件记录、设备状态或控制访问。即使物理设备继续运行,失去一项服务也可能降低运营可视性。

崩溃还可能触发自动重启、故障切换或降级模式。只有当组织已针对重复畸形流量测试过这些控制措施时,它们才能降低风险。攻击者可以在每次重启后重新发送触发输入。

任意代码执行带来另一层担忧。如果 CVE-2026-49035 在易受攻击的配置中成功利用,攻击者就能超越服务中断的范围。代码执行可能允许其篡改进程、检查数据,或在其权限边界内建立持久化机制。

该 CVE 并未证明每个受影响部署都允许可靠的代码执行。ASLR 状态、编译器保护、操作系统行为、系统架构和应用设计都会产生影响。防御方应验证这些控制措施,而非根据默认设置推断安全性。

这正是该公告带来的核心压力。资产所有者必须识别可见部署和嵌入式副本。设备供应商必须确定其产品是否包含受影响代码,并提供经过验证的更新。

集成商面临类似压力。他们可能基于较旧接口构建了定制软件,或为特定发行版生成了静态数据模型。更换库可能需要重新构建、回归测试,以及再次进行设备互操作性检查。

连接性与内存安全是核心权衡

IEC 61850 的互操作性带来运营价值,但每条被接受的消息也都会成为不具备内存安全性的 C 解析逻辑的输入。

这是本文的核心权衡。工业通信依赖共享格式和可预测的服务。然而,解析器必须处理另一端点提供的每一个长度、字段、嵌套结构和可选值。

libIEC61850 采用符合 C99 标准的 C 语言编写。C 语言提供可移植性和对内存的精细控制,适合嵌入式和实时环境;但它也要求开发者对边界、指针、分配大小和对象生命周期进行大量验证。

这四项漏洞揭示了这一路径上的不同失效模式。堆溢出会写入超出动态分配内存范围的数据;栈溢出会超出固定的本地缓冲区;NULL 指针解引用会使用无效指针,通常导致进程终止。

对无效结构的不当处理,则通过畸形语法达到同样的运营结果。解析器接受了足以进入不安全状态的消息内容,随后在处理意外字段时崩溃。

CVE-2026-49035 具有最广泛的技术影响。这份堆溢出记录描述了精心构造的 MMS Initiate 请求。该请求出现在端点之间建立 MMS 关联的早期阶段。

这一位置很重要。攻击者无需在瞄准易受攻击代码前进入某个专门业务功能。攻击发生在协议栈建立和协商通信的过程中。

该 CVE 不要求任何权限,也不需要用户交互。它还将攻击向量描述为基于网络。不过,较高的攻击复杂度和 ASLR 条件限制了已演示的远程代码执行路径。

CVE-2026-50039 遵循更直接的可用性攻击模式。其栈溢出记录将内存损坏与 MMS ReadRequest 关联。CVSS 将其评为低攻击复杂度、无需权限且无需用户交互。

CVE-2026-50032 针对 Write Named Variable List 处理程序。包含空 listOfData 字段的 WriteRequest 会触发 NULL 指针解引用。该条件无需有效应用数据即可使服务器崩溃。

应用操作是否经过身份验证,与协议流量是否被接受之间的区别在此十分重要。请求可能在语法上足够可识别,从而进入处理程序,却并不代表合法的运营命令。解析器安全必须先于业务授权。

CVE-2026-50103 则位于另一条通信路径上。其 GOOSE 解析器缺陷需要相邻网络访问权限,但 GOOSE 消息通常用于支持快速的运行信号传递。该问题可在更高层验证机制保护工作流之前,使订阅应用崩溃。

这并非四个仅编号不同的同类漏洞。它们揭示了,广泛协议实现中的不同路径都可能在恶意输入下失效。MMS 关联、读取、写入和 GOOSE 订阅各自暴露出不同的解析器攻击面。

这种广度应当影响测试策略。确认某一项输入检查已修复,并不能证明相邻处理程序同样安全。供应商需要在各类协议服务中开展模糊测试、借助 sanitizer 的测试、畸形消息测试套件以及回归测试覆盖。

模糊测试会向软件自动输入生成的测试数据,以发现崩溃和不安全行为。AddressSanitizer 可在测试期间检测内存错误。两者都无法替代细致审查,但结合使用能够在发布前暴露边界情况。

工业运营方无法自行完成这些开发工作。他们可以要求供应商提供更清晰的组件清单、安全公告、支持时间表和验证证据。采购条款应将嵌入式协议库视为需要持续维护的依赖项。

开源通过公开代码、提交记录和发布历史,有助于这一过程。但它不会自动将更新交付到已安装设备中。公开修复与包含该修复的每一台已部署产品之间,仍存在运维鸿沟。

版本 1.6.2 修复了代码,而非部署鸿沟

MZ Automation 提供了直接修复方案,但每个运营方仍需确认脆弱代码位于何处,并验证更新能否安全运行。

MZ Automation 建议更新至最新构建版本。该项目于 2026 年 7 月 23 日发布 libIEC61850 1.6.2,为 1.6 分支提供漏洞和错误修复。

版本 1.6.2 发布版列出了多项已修复的解析器和内存安全问题,包括 NULL 指针解引用、越界读取、栈溢出、无效释放以及畸形消息导致的崩溃。

发行说明还包含功能变更。TLS 集成已更新,现可修改运行时 TLS 配置,GOOSE 发布功能也获得了新的控制选项。因此,运营方应在验证安全修复的同时测试功能行为。

对于已使用 1.6 系列的部署,从 1.6.1 升级到 1.6.2 应是直接路径。较旧的安装环境则可能面临更复杂的兼容性问题。

与早期版本相比,1.6 分支变更了数组处理方式及其数据模型。MZ Automation 的发布历史指出,从 1.6 之前的版本升级时,静态模型代码需要重新生成。动态模型生成也必须考虑新的数组表示方式。

这一提醒应避免得出草率结论。修复确实存在,但长期未更新的部署并不总能在无需工程工作的情况下直接跨版本升级。应用程序可能依赖较旧 API、生成的模型、补丁或供应商特定的封装器。

设备所有者也可能无法独立更新该库。若 libIEC61850 嵌入在已签名固件中,只有设备供应商能够发布受支持的软件包。安装上游构建版本可能导致支持失效,或形成未经测试的配置。

负责任的响应应从资产盘点开始。团队应搜索源代码仓库、构建清单、软件物料清单、固件记录、二进制字符串、包元数据和供应商证明文件,并记录库版本及已启用服务。

服务暴露情况会影响优先级。使用脆弱 MMS 服务器的应用,应紧急审查读取、写入和关联路径。GOOSE 订阅方还会受到畸形帧问题影响。禁用服务能够降低暴露面,但团队必须验证编译配置和运行时配置。

接下来是架构验证。团队应绘制所有能够访问受影响进程的系统,包括本地对等节点、跳板主机、工程工作站、远程访问网关、测试工具,以及共享二层网络连接的系统。

随后,运营方应在具有代表性的环境中测试版本 1.6.2。测试应覆盖正常读取和写入操作、报告、关联处理、GOOSE 流量、故障切换、日志记录、时序,以及遭遇畸形流量后的恢复。

内存防护值得进行明确检查。团队应确认 ASLR 是否已为受影响的进程和平台启用,还应检查不可执行内存、栈保护、编译器加固、进程权限和服务监控机制。

这些控制措施不能替代打补丁。它们可在更新窗口期间降低可利用性或限制后果。其价值取决于实际部署设置,而非平台的名义能力。

无法立即修补的组织应缩小暴露面。CISA 建议最小化网络访问、将控制系统与业务网络隔离,并对远程访问采用安全方法。这些措施必须覆盖本地工业网络,而不只是互联网边界。

监控同样有帮助。团队可关注畸形关联尝试、异常 MMS 请求、异常 GOOSE 来源、重复进程重启、崩溃转储和服务看门狗活动。基线应能够区分维护工具与无法解释的对等节点。

CISA 网络安全指南未能证明什么

该公告确立了可信的技术风险,但并未表明存在大规模利用、普遍代码执行,或所有部署环境均会产生相同后果。

安全报道常会将一个漏洞压缩为其最严重的可能结果。在这里,这将是针对关键基础设施的、无需认证的任意代码执行。现有证据需要更精确的表述。

只有 CVE-2026-49035 记录了已演示的远程代码执行。该结果适用于 ASLR 被禁用时。若 ASLR 已启用,记录指出的是内存损坏或拒绝服务,而非已确认、可靠的代码执行。

另外三个 CVE 主要描述崩溃。在工业环境中,崩溃仍可能十分严重,尤其是在其导致可视性或控制能力丧失时。若无额外证据,不应将其报道为代码执行。

网络可达性也各不相同。CVE-2026-50103 因针对二层 GOOSE 或 R-GOOSE 解析而需要相邻位置。MMS 漏洞使用网络攻击向量,但防火墙和路由仍决定谁能够访问特定部署。

“无需认证”一词同样需要谨慎理解。它表示在评分模型下,脆弱路径不需要应用程序权限;并不意味着每一项受影响服务都向互联网上的任何人开放。

CISA 表示,这些产品已在全球三个关键基础设施领域部署。这一说法表明其具有广泛相关性,而非给出易受攻击设备的数量。CISA 和 MZ Automation 均未公布完整的安装基数。

受影响版本范围也值得仔细解读。公告列出 1.0.0 至 1.6.1 版本受影响。仅凭版本号无法识别每一个包含该代码的产品,因为供应商可能回移修复,或维护定制分支。

反过来,产品版本标签也可能掩盖受影响的依赖项。设备固件可采用自身版本编号,同时嵌入较旧的 libIEC61850 发布版。运营方需要供应商确认或技术检查。

CISA 的评估显示,在公告发布后可获得的 CVE 补充信息中,没有已知利用记录。这令人安心,但并不能证明从未发生利用。工业网络中的检测往往并不完整,尤其是对于短暂的进程崩溃。

公开概念验证的状态也可能在发布后变化。披露信息已提供足够技术方向,可将研究聚焦于特定处理程序和消息类型。防御方应关注新的漏洞利用代码,但不应等到它出现后才采取行动。

另一个不确定性涉及恢复。有些部署可能在崩溃后自动重启,另一些则可能需要人工干预或丢失临时数据。组织无法在未测试完整应用及其监管系统的情况下推断其韧性。

冗余同样需要审视。运行相同脆弱解析器的两台冗余服务器,可能因同一恶意输入而同时失效。当组件共享同一软件缺陷并接收相同流量时,重复组件并不提供独立性。

正确的解读应介于自满与恐慌之间。目前没有已公开证据表明存在全球性的运营攻击活动;但有明确证据显示,畸形消息可在受影响版本中触及不安全的内存处理路径。

这些证据足以支持及时修复,也支持审慎报道,将已记录的条件与最坏情况假设区分开来。可信度至关重要,因为运营方必须将这项工作与其他安全和可用性责任一并排序。

三项信号将显示风险是否得到控制

下一阶段取决于供应商采用情况、经验证的暴露面,以及攻击者是否正从披露走向利用的证据。

第一项信号是下游供应商的响应。设备和软件供应商应识别受影响产品、发布修复版本,并说明其是否使用了脆弱的 MMS 或 GOOSE 功能。

清晰的公告将增强这样一种判断:生态系统能够迅速弥补这一暴露面。沉默、不完整的资产清单或长期固件延迟,则将表明部署鸿沟仍大于源代码修复本身。

第二项信号是运营方对版本 1.6.2 的验证。资产所有者应跟踪已识别部署中有多少已完成修补、隔离,或已纳入供应商批准的补偿性控制措施。

在真实保护和监控工作流中成功完成回归测试,将支持及时采用。兼容性故障或未记录的嵌入式副本,则会削弱人们对短期修复的信心。

第三项信号是利用证据。CISA 的已知被利用漏洞目录、供应商事件报告、安全研究人员和工业监控团队,都可能揭示这些 CVE 是否进入活跃攻击活动。

针对已启用 ASLR 系统的经验证漏洞利用,将使风险实质性高于已记录的演示结果。即便没有代码执行,针对暴露 MMS 服务的重复崩溃尝试也会提高紧迫性。

目前,团队不应等待这些信号再行动。他们应识别受影响应用、确认可达的协议路径、验证内存防护,并测试当前发布版本。

实际问题并不在于 CVSS 评分听起来是否严重,而在于畸形消息能否触及支撑关键工作流的脆弱进程。这需要来自每个组织自身架构的证据。

应将 CISA 网络安全公告视为调查的起点,而非终点。向供应商询问组件版本,绘制每一个可达对等节点,并记录经过测试的恢复计划。如果这些答案缺失,运营暴露面仍未得到解决。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page