curl –continue-at 混淆问题报告
摘要
当curl命令与--continue-at选项一起使用时,--no-clobber选项会被意外忽略,curl会将输出附加到目标文件(即使文件已存在)。如果--continue-at与--remove-on-error结合使用,可能在早期错误时导致文件被意外删除。值得注意的是,这种情况在与--remote-name和--remote-header-name选项组合时也会发生。
复现步骤
篡改文件(即使使用–no-clobber)
|
|
注意:不使用-C 1时,输出会写入robots.txt.<n>。
结合–remove-on-error与–continue-at删除文件
|
|
注意:不使用-C 1时,文件不会被删除。
修复建议
防止这些问题发生的最简单方法是禁止--continue-at与--no-clobber或--remove-on-error的组合使用。
影响
可能导致现有文件的意外修改或删除。
时间线
- 2024年11月22日 03:59 UTC - nyymi向curl提交报告
- 2024年11月22日 04:03 UTC - nyymi更新漏洞信息
- 2024年11月22日 04:10 UTC - nyymi再次更新漏洞信息
- 2024年11月22日 04:53 UTC - curl工作人员bagder回应,表示感谢并承诺调查
- 2024年11月23日 09:48 UTC - bagder认为这是未文档化的意外行为而非安全问题
- 2024年11月23日 11:57 UTC - nyymi同意文档需要澄清,建议明确–continue-at和–range的交互
- 2024年11月23日 13:55 UTC - nyymi建议curl命令在这些选项组合时应产生错误而非当前行为
- 2024年11月26日 14:21 UTC - bagder同意需要完善文档细节
- 2024年11月26日 15:43 UTC - nyymi关闭报告,状态改为"不适用"
- 2024年11月26日 16:10 UTC - nyymi提供相关GitHub问题链接
- 10天前 - bagder请求披露此报告
- 9天前 - bagder披露此报告
报告详情
- 报告ID: #2859735
- 严重程度: 中等 (4 ~ 6.9)
- 披露时间: 2025年7月7日 10:18 UTC
- 弱点类型: 业务逻辑错误
- CVE ID: 无
- 赏金: 无
相关GitHub问题: