漏洞概述 在libxls 1.6.3版本中,解析格式错误的XLS文件时存在未初始化内存使用漏洞。该漏洞可通过 函数触发,由来自OLE层(ole2_read)的未初始化堆内存引起。此漏洞可通过MemorySanitizer(MSAN)检测到,并可能导致未定义行为、错误的解析逻辑或潜在的信息泄露。 影响范围 工具:afl-fuzz 操作系统:Ubuntu 22.04 x86_64 libxls版本:1.6.3 影响 该漏洞允许未初始化的堆内存影响工作簿解析期间的控制流或数据流。虽然MSAN会中止执行,但在非仪器化构建中可能会导致以下问题: 解析XLS文件时的未定义行为 工作簿状态或逻辑错误 如果未初始化内存内容被复制或稍后序列化,可能导致潜在的信息泄露 增加下游内存损坏问题的攻击面 复现步骤 1. 使用MemorySanitizer构建libxls 1.6.3 2. 使用 解析附带的损坏XLS文件 3. MemorySanitizer报告在 中使用了未初始化的值 4. 附上崩溃输出 构建标志用于调试 根本原因 OLE解析层假设从 返回的缓冲区将被 完全填充。然而: 短读或损坏的OLE流可能使缓冲区的一部分未被触及 没有执行显式的零初始化或边界验证 下游XLS解析代码信任缓冲区内容 修复方案 页面中未提供具体的修复方案,但建议进行以下改进: 确保从 返回的缓冲区在使用前被完全填充 添加显式的零初始化或边界验证 下游XLS解析代码应验证缓冲区内容 POC代码 页面中未提供具体的POC代码,但提供了构建标志用于调试: 其他信息 报告者:rmhowe425 日期:2023年1月16日 状态:Open 标签:无 类型:无 项目:无 里程碑:无 关系:无 开发:无分支或拉取请求 参与者:rmhowe425 评论 eddelbuettel 提到11小时前: - 新的上游libxls CVEs报告:tolverson/headr#795 页脚 版权:© 2026 GitHub, Inc. 链接:Terms, Privacy, Security, Status, Community, Docs, Contact, Manage cookies, Do not share my personal information 总结 该漏洞涉及libxls 1.6.3版本中解析XLS文件时的未初始化内存使用问题,可能导致未定义行为、逻辑错误和信息泄露。建议通过确保缓冲区完全填充、添加零初始化或边界验证来修复。