OpenOffice 中允许在打开文件时执行代码的漏洞

Apache OpenOffice 办公套件中已发现一个漏洞 (CVE-2021-33035),该漏洞允许在打开专门设计的 DBF 格式文件时执行代码。 发现该问题的研究人员警告说,要为 Windows 平台创建一个有效的漏洞利用程序。 该漏洞修复目前仅以项目存储库中的补丁形式提供,该补丁已包含在 OpenOffice 4.1.11 的测试版本中。 稳定分支还没有更新。

该问题是由于 OpenOffice 依赖 DBF 文件头中的 fieldLength 和 fieldType 值来分配内存,而不检查字段中的实际数据类型是否匹配而引起的。 要进行攻击,可以在fieldType值中指定INTEGER类型,但是放置较大的数据并指定与INTEGER类型的数据大小不对应的fieldLength值,这会导致数据出现尾部从被写入的字段超出分配的缓冲区。 由于受控缓冲区溢出,研究人员能够重新定义函数的返回指针,并使用面向返回的编程技术(ROP - 返回导向编程)实现代码的执行。

使用 ROP 技术时,攻击者不会尝试将其代码放入内存中,而是对加载的库中已有的机器指令进行操作,以控制返回指令结束(通常,这些是库函数的结尾) 。 该漏洞利用的工作归结为构建对类似块(“小工具”)的调用链以获得所需的功能。 OpenOffice 漏洞利用中使用的小工具是来自 OpenOffice 中使用的 libxml2 库的代码,与 OpenOffice 本身不同,该库是在没有 DEP(数据执行保护)和 ASLR(地址空间布局随机化)保护机制的情况下编译的。

OpenOffice 开发人员于 4 月 30 日收到有关该问题的通知,随后计划于 18 月 4.1.11 日公开披露该漏洞。 由于稳定分支的更新未能在预定日期完成,研究人员将详细信息的披露推迟到 2021 月 38646 日,但 OpenOffice 开发人员未能在该日期之前创建版本 XNUMX。 值得注意的是,在同一研究中,Microsoft Office Access 中的 DBF 格式支持代码中发现了类似的漏洞(CVE-XNUMX-XNUMX),详细信息将在稍后披露。 LibreOffice 中没有发现问题。

来源: opennet.ru

添加评论