Apache OpenOffice 中存在一个缓冲区溢出漏洞,可被用于在使用恶意文档的目标机器上执行任意代码。

该漏洞的编号是CVE-2021-33035,由安全研究员 Eugene Lim 发现,影响4.1.10及之前版本,补丁仅部署在 4.1.11 测试版,意味着多数版本可能易受攻击。

Lim 表示自己在基西 .dbf 文件格式的软件中查找潜在的安全漏洞时发现了该缓冲区溢出漏洞。他通过dumb fuzzing模板在目标机器上触发了该漏洞并在多个DBF处理器上进行了测试,进而发现了两个漏洞:Scalabium dBase Viewer 中的 CVE-2021-35297和下载量已达到数百万次的开源办公套件 Apache OpenOffice 中的 CVE-2021-33035。

该缓冲区溢出漏洞存在的原因是DBF文件的缓冲区大小或者由 fieldLength 确定或者由标头中的 fieldType 确定。因此,如果将超大的缓冲区复制到短整型缓冲区时就会触发溢出。

Lim 通过 dumb fuzzing 模板触发了崩溃,但由于 OpenOffice 具有地址空间布局随机化 (ASLR) 和数据执行预防 (DEP) 等防护措施,因此实现返回面响编程 (ROP) 链还需要绕过这些防护措施。

进一步分析发现,OpenOffice 中的 libxml2 模块并未通过 DEP 或 ASLR 防护措施编译,最终 Lim 通过特殊构造的 .dbf 文件即可利用该漏洞。

尽管 OpenOffice 是一款开源应用程序,意味着它可能已被很多款代码分析工具扫描过,但该漏洞未被发现是因为扫描工具查找的是套件中的 Python 和 JavaScript 代码而不是漏洞存在的 C++ 代码。Lim 指出,“这说明完整性检查自动化静态分析工具的重要性;如果工具不了解已有的代码,那么就无法找到这些漏洞。”

Lim 在5月份将漏洞告知 Apache OpenOffice,后者更新了其源代码,但并未在稳定发布版中打补丁。Lim 之前同意在8月30日发布详情的提议,后在9月18日公开。

Scalabium dBase 查看器中的漏洞在6月份修复,即收到漏洞报告的两天后修复。

原文链接

https://www.securityweek.com/openoffice-vulnerability-exposes-users-code-execution-attacks

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。