CVE-2026-102810 Marmite 开发服务器路径遍历漏洞
影响未认证攻击者可读取服务器任意文件
Marmite 0.4.2 及之前版本的 --serve 开发服务器存在路径遍历漏洞。src/server.rs 中的 handle_request 函数在百分号解码并将请求路径拼接到输出目录后,未正确拒绝 .. 路径段。攻击者可通过编码的遍历序列读取 marmite 进程有权限访问的任意文件。
影响范围
Marmite 0.4.2 及更早版本(据公开描述为 through 0.4.2),具体受影响版本范围以官方公告为准。
漏洞详情
漏洞类型为路径遍历(目录穿越)。成因是服务器对请求路径先做百分号解码,再与输出目录拼接,但未过滤解码后出现的 .. 段,导致路径可逃逸出预期目录。攻击者无需认证,只需构造包含编码遍历序列(如 %2e%2e)的 HTTP 请求,即可读取进程权限范围内的任意文件。
利用条件与风险
利用前提是目标使用 --serve 启动开发服务器且网络可达,无需认证即可远程利用,可导致敏感文件泄露。开发服务器通常不建议暴露于公网,实际风险取决于部署方式。
修复建议
建议升级到修复该漏洞的 Marmite 版本(具体版本暂无公开信息)。临时缓解措施:避免将 --serve 开发服务器暴露在不可信网络,或在其前置反向代理中拦截包含 .. 及编码变体的请求路径。
Marmite through 0.4.2 contains a path traversal vulnerability in the development server started by –serve that allows unauthenticated attackers to read arbitrary files. The handle_request function in src/server.rs fails to reject .. segments after percent-decoding and joining the request path to the output folder, enabling attackers to request encoded traversal sequences to access files readable by the marmite process.