报告 #3442024 - 在PowerShell中运行curl时不应执行JavaScript
报告者: lim_e 提交至: curl 提交时间: 13天前
报告详情
原始标题: runs javascript on powershell when it shouldnt
报告描述:
在Windows系统中,当我在PowerShell中运行curl命令访问一个应返回<script>alert(1)</script>内容的脚本时,该脚本却被执行了,而按预期它不应被执行。
我未使用AI来发现或报告此漏洞。
受影响版本:
在CMD中运行 curl --version 的结果是:
curl 8.16.0 (Windows) libcurl/8.16.0 Schannel zlib/1.3.1 WinIDN
在PowerShell中,--version 标志不被识别。我并未在此计算机上安装任何特定版本的curl,因此它应该是随Windows 11附带并更新的默认版本。
复现步骤:
- 托管一个将返回
<script>alert(1)</script>的端点(在此案例中为ctf.eztfsp.lv:8009/test.js)。 - 打开PowerShell。
- 在PowerShell中运行
curl ctf.eztfsp.lv:8009/test.js。 - 它会弹出一个显示“message from webpage 1”的窗口。
辅助材料/参考资料: 我附加了一个.gif文件,演示了它在PowerShell和CMD中的不同行为。
影响:
摘要:
在PowerShell的curl中运行了JavaScript。
该问题还会导致进程挂起。当警报窗口打开时,我无法使用 Ctrl+C 来停止curl进程。因此,它可能被用于挂起PowerShell脚本。
附件:
时间线
- 13天前: 报告者 lim_e 提交了报告。
- 13天前: 报告者将报告标题从“runs javascript on embedded browser when it shouldnt”修改为“runs javascript on powershell when it shouldnt”。
- 13天前: curl 团队成员 dgustafsson 发表了评论:
感谢您的报告。Curl 本身不会执行任何内容,这难道不是PowerShell的问题吗?
- 13天前: 报告者 lim_e 回复:
所以您的意思是这个问题应该向微软报告?我理解可能是他们的实现有问题,因为我刚在我的工作电脑上测试,通过PowerShell也有同样的问题。
- 13天前: curl 团队成员 bagder 关闭了报告并将状态改为“不适用”:
在PowerShell中,
--version标志不被识别。那么你运行的就不是curl。你可能使用了PowerShell提供的curl别名,该别名调用的是Invoke-WebRequest。它们与“真正的”curl无关。 相关阅读:https://daniel.haxx.se/blog/2016/08/19/removing-the-powershell-curl-alias/ 这不是一个curl安全问题。 - 13天前: 报告者 lim_e 回复:
好的,感谢您提供的信息,对于这个误报的报告我表示歉意。
- 13天前: curl 团队成员 bagder 请求公开此报告:
根据项目透明度政策,我们希望所有报告都被公开。
- 13天前: curl 团队成员 bagder 公开了此报告。
- 13天前: 报告者 lim_e 发表最后评论:
出于安全考虑,能否删除此工单。我正在与微软沟通,希望能澄清并缓解此漏洞。
报告元数据
- 报告日期: November 26, 2025, 7:35am UTC
- 报告者: lim_e
- 报告对象: curl
- 报告ID: #3442024
- 严重性: 未评级 (—)
- 公开日期: November 26, 2025, 9:32am UTC
- 弱点分类: 网页中脚本相关HTML标签的不当中和(基本XSS)
- CVE ID: 无
- 赏金: 无