curl 不隐藏通过 CLI 参数提供的 /proc/XXX/cmdline 中的凭据 | 报告 #3000639
摘要
cleanarg
辅助函数在凭据没有空格提供给短选项标志时不起作用,例如 -uUSER:PASS
对比 -u USER:PASS
或 -UUSER:PASS
对比 -U UUSER:PASS
。
受影响版本
|
|
复现步骤
在 Linux 环境(在 zsh、bash、posix sh 中测试)运行以下命令:
使用 root 或其他用户运行 curl:
|
|
在同一主机上的另一个终端中,以另一个非特权用户身份运行 ps ax
:
|
|
|
|
支持材料/参考文献
初始实现:https://github.com/curl/curl/commit/7f67a28c2a2ee81b0998e57a10bccbdfe9078fd7
影响
摘要
当通过命令行传递敏感参数(例如密码)而没有空格分隔符时,curl 无法屏蔽这些参数。因此,这些参数在系统进程列表(ps aux、/proc/
影响
系统上的任何用户都可以通过检查正在运行的进程来查看敏感信息。这可能导致未经授权的访问、凭据泄露和潜在的安全漏洞。
时间线评论
bagder (curl staff) - 2025年2月19日 13:46 UTC
这听起来像是一个错误,而不是安全漏洞。参见:https://curl.se/dev/vuln-disclosure.html#visible-command-line-arguments
隐藏敏感命令行参数是尽力而为,而不是万无一失的安全属性。
dgustafsson (curl staff) - 2025年2月19日 13:49 UTC
同意,这不是安全漏洞,因为它从未被记录为提供任何关于屏蔽的保证。这里记录了一些附加信息:https://everything.curl.dev/cmdline/passwords.html#command-line-leakage
bagder (curl staff) - 2025年2月19日 14:58 UTC
如果您能在 GitHub 上将此作为常规问题提交,那就太好了,我们可以从那里开始处理!
stogusho - 2025年2月19日 15:01 UTC
很遗憾听到这不是一个关键问题。我将提交一个 GitHub 问题。
stogusho - 2025年2月19日 15:18 UTC
bagder (curl staff) - 2025年2月19日 23:03 UTC
非常感谢您的报告。由于我们认为这是一个"正常"的错误,而不是安全问题,此处的问题就此关闭。
bagder (curl staff) - 2025年7月1日 14:10 UTC
根据项目的透明政策,我们希望所有报告都被公开披露。
bagder (curl staff) - 2025年7月3日 06:43 UTC
披露此报告。
报告详情
报告时间:2025年2月19日 13:41 UTC
报告者:stogusho
报告对象:curl
报告ID:#3000639
严重程度:中等(4 ~ 6.9)
披露时间:2025年7月3日 06:43 UTC
弱点:敏感信息的明文传输
CVE ID:无
赏金:无