Command Injection
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 25/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
- 技术栈
- macos, swift
- 领域
- desktop-dev, security
调研方向
首先,沿着 issue 中描述的参考文件处理和代理模式入口点追踪 filepath 参数,然后在安全的测试项目中使用提供的 filename 重现该行为。当通过 Copilot 打开或使用被引用的文件时,恶意 filename 不再能够导致命令执行,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Description
An attacker can execute arbitrary commands on the user's machine.
Version: 0.43.0
Technical Impact
An attacker can create a project containing a maliciously crafted file name. If a user opens the project in Xcode and interacts with the file using the Copilot extension, the command will be executed on the system.
Code Review
The filepath parameter is used directly while opening the reference file in the code, leading to command injection.
Steps to reproduce
- Create a file with the following payload
main.swift";cat>xxd -r -p <<< 2f746d702f68657861616161;".swift
- The file will be automatically attached to the Xcode chat editor.
- Send any message to interact with Copilot.
- Click on the referenced file. Command mentioned in the filename will be executed.
I reported this to GitHub Security in version 0.31.0 but did not receive a response. I also reported the issue to the developer of the intitni repository, and they fixed it in the below commit
https://github.com/intitni/CopilotForXcode/commit/9340275e615197fd7cd3ee8b2ed992893119b38d
Now I see that the vulnerable code is also used for agent mode. Since the issue is already public, I am sharing the details.
- 主要语言
- Swift
- 星标
- 6.3k
- 派生
- 2k
- 平均合并
- 3 天 21 小时
- 30 天内合并 PR
- 2
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/CopilotForXcode 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 85/100
github/CopilotForXcode#181 · 2 个 reaction ·
-
Add ability to attach Copilot window only to Xcode projects/workspaces, ignoring standalone files 未关闭
难度 3/5 1-2 天 新手友好度 68/100
github/CopilotForXcode#945 ·
-
难度 2/5 1-3 小时 新手友好度 35/100
github/CopilotForXcode#943 ·
-
难度 5/5 一周以上 新手友好度 10/100
github/CopilotForXcode#936 · 2 条评论 ·
-
难度 5/5 一周以上 新手友好度 10/100
github/CopilotForXcode#934 ·
查看 github/CopilotForXcode 的全部 Issue
相似的 Issue
-
Docs/performance.md says the clipboard panel waits for catchUp; toggleQuickPanel no longer waits 未关闭area:docs documentation good first issue P2
难度 1/5 1-3 小时 新手友好度 94/100
uttrflow/uttrflow-swift#1032 ·
-
难度 2/5 1-3 小时 新手友好度 88/100
-
🎉 Add KinetTask 未关闭
难度 1/5 1 小时以内 新手友好度 88/100
jaywcjlove/awesome-mac#2932 ·
-
tvOS
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 82/100
skiptools/skip-fuse-ui#147 ·