报告 #3442024 - 在PowerShell中不应运行JavaScript时却运行了
时间线
-
lim_e 向 curl 提交了一份报告。 (5天前)
在Windows上,如果我在PowerShell中运行curl获取一个本应显示
<script>alert(1)</script>的脚本,它却执行了该脚本,而这本不应该发生。 我没有使用AI来发现或报告这个漏洞。受影响版本
在CMD中我运行了
curl --versioncurl 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。 它还会挂起进程,当弹窗打开时,我无法通过
Control+C来停止curl进程,因此这可能被用来挂起PowerShell脚本。附件
- 托管一个返回
-
lim_e 将报告标题从 “runs javascript on embedded browser when it shouldnt” 改为 “runs javascript on powershell when it shouldnt”。 (5天前)
-
dgustafsson (curl 团队成员) 发表评论。 (5天前)
感谢您的报告。Curl不会执行任何内容,这难道不是PowerShell的问题吗?
-
lim_e 发表评论。 (5天前)
所以你的意思是应该向微软报告这个问题?我理解这可能是他们实现得不好,因为我刚刚在我的工作电脑上测试了,通过PowerShell也出现了同样的情况。
-
bagder (curl 团队成员) 关闭了报告并将状态改为"不适用"。 (5天前)
on powershell it didn't recognise the --version flag.那么你运行的就不是curl。你很可能使用了PowerShell提供的curl别名,该别名调用的是Invoke-WebRequest。它们与"真正的"curl毫无关系。 相关阅读: https://daniel.haxx.se/blog/2016/08/19/removing-the-powershell-curl-alias/ 这不是一个curl的安全问题。 -
lim_e 发表评论。 (5天前)
好的,谢谢告知,对于这个误报报告我表示歉意。
-
bagder (curl 团队成员) 请求公开此报告。 (5天前)
根据项目的透明度政策,我们希望所有报告都被公开。
-
bagder (curl 团队成员) 公开了此报告。 (5天前)
-
lim_e 发表评论。 (5天前)
能否出于安全考虑删除此工单。我正在与微软沟通,希望能澄清并缓解此漏洞。
报告详情
- 报告时间: 2025年11月26日,上午7:35 (UTC)
- 报告人: lim_e
- 报告对象: curl
- 参与者: 报告人、curl团队成员
- 报告ID: #3442024
- 严重性: 未评级 (—)
- 公开时间: 2025年11月26日,上午9:32 (UTC)
- 弱点类型: 网页中脚本相关HTML标签的不当过滤(基础XSS)
- CVE ID: 无
- 赏金: 无
- 账户详情: 无