curl –continue-at 混淆 | 报告 #2859735
摘要
当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日 3:59 UTC - nyymi 提交报告给curl。
- 2024年11月22日 4:03 UTC - nyymi 更新漏洞信息。
- 2024年11月22日 4:10 UTC - nyymi 再次更新漏洞信息。
- 2024年11月22日 4:53 UTC - bagder (curl staff) 发表评论,表示感谢并将调查。
- 2024年11月23日 9: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问题链接。
- 2025年7月6日 21:18 UTC - bagder 请求披露此报告。
- 2025年7月7日 10:18 UTC - bagder 披露此报告。
报告详情
- 报告日期: 2024年11月22日 3:59 UTC
- 报告者: nyymi
- 报告对象: curl
- 报告ID: #2859735
- 严重性: 中等 (4 ~ 6.9)
- 披露日期: 2025年7月7日 10:18 UTC
- 弱点: 业务逻辑错误
- CVE ID: 无
- 奖金: 无