漏洞概述 在Ray项目中,发现了一个关键的安全漏洞(CVE-2024-2056),该漏洞允许攻击者通过构造的Parquet文件执行任意代码。此漏洞存在于Arrow扩展类型反序列化过程中,具体涉及 的使用。 影响范围 受影响版本:Ray 2.49.2.54及之前版本。 影响组件:Arrow扩展类型反序列化功能。 风险等级:高危,可能导致远程代码执行(RCE)。 修复方案 1. 默认序列化格式更改: - 将默认序列化格式从 改为 ,以提高安全性。 - 通过环境变量 控制序列化格式。 2. 向后兼容性: - 对于由Ray 2.49.2.54之前版本写入的文件,仍可使用 进行反序列化。 - 通过环境变量 启用对旧格式的支持。 3. 代码修改: - 修改 文件中的 类,设置新的默认序列化格式。 - 更新 方法,优先尝试 ,失败后回退到 格式。 4. 测试验证: - 确保现有测试用例与新序列化格式兼容。 - 验证读取使用 序列化的Parquet文件时,元数据正确解析。 - 测试使用恶意 负载的Parquet文件,确保不会执行代码,而是抛出 。 POC代码 以下是与漏洞相关的代码片段: 总结 该漏洞通过修改默认序列化格式和增加环境变量控制,有效防止了恶意代码的执行,同时保持了向后兼容性。建议用户尽快升级至修复版本,并根据需要配置相关环境变量。