漏洞概述 该漏洞涉及在导入笔记本文件时,未对文件条目名称进行验证,导致路径遍历读取和写入的风险。攻击者可以通过构造恶意文件名称,访问或修改系统上的任意文件。 影响范围 受影响文件: - - - 影响功能: - 导入笔记本文件时的文件条目名称验证。 修复方案 1. 添加文件条目名称验证: - 在 中,新增 函数,用于验证文件条目名称是否合法。 - 在 中,新增 函数,用于验证文件条目名称是否符合规范。 2. 更新导入逻辑: - 在 中,对文件条目名称进行验证,如果名称不合法,则丢弃该文件条目。 3. 添加测试用例: - 在 中,添加测试用例,验证路径遍历文件名和无效文件名的处理逻辑。 POC代码 elixir livebook:{"file_entries":[{"name":"image.jpg","type":"attachment"}, {"name":"../secret.txt","type":"attachment"},{"file": {"file_system_id":"local","file_system_type":"local","path":"{"/document.pdf"}},{"name":"foo/bar.png","type":"file"}, {"name":"../../tmp/payload.txt","type":"url","url":"https://example.com/payload.txt"}]} elixir livebook:{"file_entries":[{"name":".","type":"attachment"},{"name":"document","type":"attachment"}, {"name":"","type":"attachment"},{"name":"42","type":"attachment"}]} 总结 该漏洞通过未验证文件条目名称,导致路径遍历风险。修复方案包括添加文件条目名称验证逻辑,并在导入过程中对不合法的文件条目进行丢弃。同时,通过添加测试用例确保修复的有效性。