微软 Copilot 被“越狱”?安全研究员教你一招拿下“沙箱环境 Root 权限”!

大家好,这里是架构资源栈 !点击上方关注,添加"星标",一起学习大厂前沿架构!

关注、发送C1即可获取JetBrains全家桶激活工具和码!

4 月份,微软为 Copilot Enterprise 静悄悄地推送了一项更新:启用了一个基于 Jupyter Notebook 的 Python 沙箱,可以后台执行代码。听上去像是开发者的天堂?安全研究员的"探索之旅"随即展开。

结果?他们成功"越狱"了这套系统,拿下了容器的 Root 权限------虽然这看起来没啥用,但过程惊心动魄又忍俊不禁。


🧪Jupyter 沙箱:不听话的"孩子"

Copilot 沙箱默认使用 Jupyter Notebook 的 %command 语法来执行系统命令。虽然并不总是听话,但当它"吃饱喝足",心情不错时,会乖乖地执行命令:

环境运行在一个 Conda 环境下,执行用户是 ubuntu,虽然它在 sudo 用户组中,但系统内居然没装 sudo 命令(微软怕不是忘了?)。


🛠技术细节揭秘

研究员们逐步发现:

  • Python 版本是 3.12,内核较新;
  • 除了 Loopback,还有一个 Link-Local 网络接口;
  • 使用了 OverlayFS,挂载路径来源是 /legion
  • 主要脚本都放在 /app 目录;
  • 可通过 /mnt/data 拷贝或下载文件;
  • 甚至支持通过 base64 下载二进制文件(虽然有时"闹小脾气"会故意损坏文件)。

🔍真正的突破口:脚本注入

一切的关键,在于一个细节疏忽。

研究员们发现启动脚本 /app/entrypoint.sh 里有这样一行代码:

bash 复制代码
JUPYTER_PID=$(pgrep -f "jupyter notebook --ip=0.0.0.0 --port=8888")

pgrep 没有使用绝对路径,这意味着系统会从 $PATH 路径中查找可执行文件。而 /app/miniconda/bin 目录刚好在 $PATH 中,而且对 ubuntu 用户是可写的!

于是,他们编写了一个伪装成 pgrep 的 Python 脚本如下:

python 复制代码
#!/home/ubuntu/snenv/bin/python
import os
with open('/mnt/data/in','r') as fin:
  with open('/mnt/data/out','a') as fout:
    fout.write(os.popen(fin.read()).read())
print('1')

这个脚本会不断读取 /mnt/data/in 中的命令,执行后写入 /mnt/data/out,就这样,他们成功让 Root 用户执行了自己上传的任意代码!


🧱Root 权限到手之后呢?

得到 Root 权限后,他们做的第一件事是......四处翻看系统文件。

结果却有些扫兴:

  • /root 目录里啥都没有;
  • 没有敏感日志;
  • 尝试容器逃逸的常见方法全部失效;
  • 网络出口被禁用了,无法向外通信;
  • 系统打了补丁,牢不可破。

但研究员们表示,虽然没拿到什么敏感数据,但这个"解谜"过程还是非常爽!


📝安全问题上报微软:被认定为"中等严重"

研究员在 2025 年 4 月 18 日向微软安全响应中心(MSRC)上报了这个漏洞。微软于 7 月 25 日确认漏洞已修复,并将其归类为中等严重等级(Moderate Severity)。

不过,因为没有达到"重要"或"严重"级别,这次他们没有获得漏洞赏金,仅获得了官网致谢:

🔗MSRC 安全研究者致谢名单(2025)


🎤顺便预告个更猛的内容!

Eye Security 的研究员还将在 Black Hat USA 2025 上分享另一项重磅发现:

🕵️‍♂️**"Consent & Compromise:滥用 Entra OAuth 获取微软内部 21 项服务访问权限"**

🗓时间:2025 年 8 月 7 日(周四)13:30 📍地点:拉斯维加斯


📌小结:安全细节不可忽视

这次"Root Copilot"的过程再次提醒我们:

  • 开发环境的每一个 $PATH 都可能埋着雷;
  • 沙箱不是万能的,也需要严格权限隔离;
  • 微小的疏忽(如未限定命令路径)也可能被巧妙利用。

最后,别忘了,研究的初衷并不是为了破坏,而是为了让系统更安全。


👀Eye Security 是一家总部位于欧洲的安全公司,专注于威胁监测、应急响应和网络保险。他们的研究团队持续挖掘潜在威胁,为客户和其供应链提供全面保护。

了解更多请关注他们的 官方网站LinkedIn


本文由博客一文多发平台 OpenWrite 发布!

相关推荐
野生技术架构师2 小时前
2026 Java 面试全套总结,八股 + 场景 + AI 相关面试考点
java·人工智能·面试
香吧香2 小时前
java服务异常日志只打印异常类型,没有堆栈定位分析
java·jvm·异常
qq_2518364573 小时前
AI 疾病自查功能SpringbootAI项目实战 · 技术实现文档
java·ai·ai编程
逆境不可逃4 小时前
Pi Agent 学习笔记:对话太长以后,如何压缩上下文
java
MetaLite4 小时前
JDK 8~26 核心特性一览:从 Stream 到 Scoped Values
java
wno7044 小时前
Spring Boot WebFlux增删改查
java·spring boot·后端
君顾14 小时前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
SL_staff5 小时前
别急着买商业规则引擎:90%风控场景根本不需要全量编码能力
java·程序员·groovy
ManageEngineITSM6 小时前
DevOps和ITIL是什么关系?是替代还是互补一文讲清
java·服务器·资产管理·变更管理
SL_staff6 小时前
ERP排程总在纸上谈兵?JVS-APS如何用真实产能约束打通计划与执行闭环
java·人工智能·开源