CVE-2026-41511OpenMcdf是一个完全基于.NET/C#的库,用于操作复合文件二进制(CFB)文件格式。在3.1.3版本之前,OpenMcdf未能在CFB文档的目录项红黑树中检测循环。攻击者可以构造一个在LeftSiblingID或RightSiblingID链中存在循环的恶意CFB文件。当受影响的应用程序使用该库解析此文件并调用Storage.EnumerateEntries()或Storage.OpenStream()方法时,将触发无限循环,导致调用线程被无限期占用且无法通过try/catch捕获恢复。该问题已在3.1.3版本中修复。
该漏洞源于OpenMcdf在解析CFB文件目录结构时,缺乏对红黑树数据结构的完整性检查。CFB格式使用红黑树结构来维护目录条目,其中每个条目都包含LeftSiblingID和RightSiblingID指针用于遍历。漏洞的核心在于库代码没有检测这些指针是否形成了闭环。攻击者通过十六进制编辑器或特定工具修改CFB文件,人为制造LeftSiblingID或RightSiblingID指向前驱节点的循环引用。当应用程序加载此恶意文件时,OpenMcdf在遍历树结构时会陷入死循环,导致线程阻塞。由于这种阻塞发生在底层解析逻辑中,且未设置最大递归深度或迭代次数限制,导致标准的异常处理机制失效,最终造成应用程序拒绝服务(DoS)。