image

网络安全研究人员近日披露了 Open VSX Registry("open-vsx[.]org")中存在的一个关键漏洞。若被成功利用,攻击者可能完全控制整个 Visual Studio Code 扩展市场,造成严重的供应链风险。

漏洞详情与潜在影响

Koi Security 研究员 Oren Yomtov 表示:"该漏洞使攻击者能够完全控制整个扩展市场,进而控制数百万开发者的设备。通过利用持续集成(CI)问题,恶意行为者可以向 Open VSX 上的每个扩展推送恶意更新。"

该漏洞于 2025 年 5 月 4 日被负责任地披露后,维护者提出了多轮修复方案,最终于 6 月 25 日完成部署。

Open VSX Registry 是 Visual Studio Marketplace 的开源替代方案,由 Eclipse 基金会维护。Cursor、Windsurf、Google Cloud Shell Editor、Gitpod 等代码编辑器都将其集成到服务中。

Yomtov 指出:"这种广泛采用意味着 Open VSX 一旦被攻陷,将引发供应链噩梦。每次安装扩展或在后台静默获取扩展更新时,这些操作都会经过 Open VSX。"

技术原理分析

Koi Security 发现的漏洞源于 publish-extensions 代码库,该库包含将开源 VS Code 扩展发布到 open-vsx.org 的脚本。开发者可通过提交拉取请求将其扩展添加到代码库的 extensions.json 文件中,经批准后即可实现自动发布。

后端处理采用 GitHub Actions 工作流,每天 UTC 时间 03:03 运行,从 JSON 文件中读取逗号分隔的扩展列表,并使用 vsce npm 包将其发布到注册表。

Yomtov 解释道:"该工作流使用特权凭证运行,包括具有发布(或覆盖)市场中任何扩展权限的 @open-vsx 服务账户密钥(OVSX_PAT)。理论上,只有受信任的代码才能访问该令牌。"

"漏洞的根本原因在于,npm install 会运行所有自动发布扩展及其依赖项的任意构建脚本,同时为它们提供对 OVSX_PAT 环境变量的访问权限。"

潜在攻击场景与行业响应

这意味着攻击者可能获取 @open-vsx 账户令牌,获得对 Open VSX Registry 的特权访问,从而能够发布新扩展并篡改现有扩展以植入恶意代码。

MITRE 已注意到扩展带来的风险,并于 2025 年 4 月在其 ATT&CK 框架中新增了"IDE 扩展"技术,指出恶意行为者可能滥用该技术实现对受害者系统的持久访问。

Yomtov 警告称:"每个市场项目都是潜在的后门。它们是具有特权访问权限的未经审查的软件依赖项,应与 PyPI、npm、Huggingface 或 GitHub 上的任何软件包一样严格审查。若不加以控制,它们将形成庞大且隐形的供应链,成为攻击者日益利用的目标。"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86637.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86637.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/86637.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python从入门到高手9.1节-Python中的字典类型

目录 9.1.1 理解字典类型 9.1.2 字典的类型名 9.1.3 字典的定义 9.1.4 字典的主要性质 9.1.5 好好学习,天天向上 9.1.1 理解字典类型 在日常生活中,我们常常会接触到“字典”这种数据类型,例如一本书籍的目录结构,在目录结构…

封禁UDP端口提高防御能力分析

封禁不必要的 UDP 端口 确实可以在一定程度上提高系统的防御力,但这并不是一个绝对的“好”或“坏”的问题,需要根据具体情况来判断。以下是详细分析: ✅ 封禁 UDP 端口能提高防御力的原因 (优点) 减少攻击面: 服务暴露&#xff…

阿里云-arms监控

监控java应用 若是容器集群环境,则选择容器服务环境 手动安装方式,是手动把 agent的jar包放到 ecs服务器,然后运行个人的spring boot服务时,加上一些参数,将agent也启动运行 手动集成-添加agent 监控的是ecs中的java应…

c语言 char *str = ““ 和 char *str = NULL 以及 char str[] = {} 区别

目录 前言char *str "" 和 char *str NULL 区别char *str NULL 和 char str[] {} 区别char *str "" 和 char str[] {} 区别char *str "" 和 const char *str "" 区别 前言 C语言指针的使用非常常见且易出错,这里对…

小程序入门: tab bar 实现多页面快速切换效果

在小程序开发中,tab bar 是实现多页面快速切换的关键组件,能极大提升用户体验。上一篇我们完成了基础配置,今天深入探索,打造更丰富实用的 tab bar 效果。 实现目标 这次要在小程序底部创建包含 “首页”“消息”“联系我们” 三…

Python 数据分析:numpy,抽提,多维切片索引

目录 1 示例代码2 欢迎纠错3 免费爬虫------以下关于 Markdown 编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个…

【向上教育】结构化面试概述.pdf

目 录 第一章 面试须知—面试形式 .......................................................................................................... 1 一、结构化面试 .................................................................................................…

STM32F407控制单个张大头闭环步进电机讲解与梯形加减速(HAL库)

文章目录 硬件连接CubeMX配置**使用TIM5定时器CH3,即PA2作为脉冲控制,PE5控制方向(TIM5_CH4是为控制双电机做准备的可以先不配置)** 设置占空比为50%,以下为AI讲解重要!!!定时器更新中断脉冲触发原理详解PW…

MongoDB入门学习(含JAVA客户端)

0.序章 致命的面试问题:为什么使用MongoDB? 大型的分布式的文档型数据库,也是NoSQL数据库(例如 redis) MongoDB适合数据量大而价值又低的这种数据(播放进度、评论、弹幕,实时数据的CRUD&…

RedisCache与StringRedisTemplate的深度对比

1. 基本概念 RedisCache ​​定位​​:自定义封装的Redis缓存工具类​​特点​​:通常针对业务场景进行了高层抽象​​典型功能​​: 带过期时间的缓存操作自定义序列化方式业务键前缀管理简化常用操作API StringRedisTemplate ​​定位…

HOOPS Visualize技术详解(二):3D图形系统HOOPS/3DGS的段结构与属性机制

在工业级三维可视化领域中,HOOPS Visualize凭借其高性能和模块化设计被广泛应用于CAD、CAM、仿真、BIM等工程软件中。其中,HOOPS 3D Graphics System(简称HOOPS/3DGS)是HOOPS Visualize的核心组件,承担着图形场景管理、…

随机化在临床试验中的应用与挑战

一、随机化的核心目的 1.1 控制混杂偏倚 1.1.1 平衡预后因素 确保已知/未知预后因素在组间分布均衡,避免基线不平衡影响结果。 1.1.2 避免选择偏倚 防止研究者或患者主观选择分组,保障组间差异归因于干预。 1.2 保障统计推断有效性 1.2.1 满足独立性假设 满足统计检验…

在C++中#pragma“可选预处理指令的作用“。

文章目录 1. 标准定位:2. 语法形式:3. 常见用途举例4. 为什么用 #pragma?5. 宏里用 __pragma / _Pragma6. 常见误区 在 C/C 里,#pragma 本质上是“可选预处理器指令”,用来告诉编译器在编译某段代码时启用或关闭某些特…

windows系统中docker数据迁移出系统盘

1、关闭docker 2、移动docker数据 找到docker数据目录,一般在C:\Users\61050\AppData\Local\Docker文件,将整个docker目录复制到其他盘(例如 D:\Docker),为保证不出错,可以先提前复制一份。 3、创建符号链…

win11电脑突然休眠问题排查

WinR, 输入eventvwr.msc打开事件查看器。找到出现问题的时间点那条数据。会显示原因。首先还是要先排查原因。再去猜测。我因为猜测就直接去了科技市场扫灰加硅来了一个遍。另外还买了散热风扇和金属支架。虽然不知道有没有必要。但是别人是很原因。到头来早上还是发现自动休眠…

安卓开发 lambda表达式

第一步:初学者代码 (没有 Lambda 的“旧”方法) 假设我们有一个简单的需求:执行一个耗时的计算(比如网络请求),并在计算完成后,通过一个“回调”来通知我们结果。 1. 定义一个回调接口 这个接口只有一个…

JMeter中变量如何使用?

在性能测试的世界中,Apache JMeter是一把利器,凭借其强大的可扩展性与图形化操作界面,在工业界和开源社区中广受青睐。而“变量的使用”作为JMeter中提高测试灵活性、可维护性和复用性的关键技术点,却常常被初学者忽略或误用。本文…

印度和澳洲的地理因素

研究表明,气温每升高1℃,劳动生产率可能下降1.5%至3%,甚至更多。印度大部分地区夏季高温且湿度较大,有地方60多度,严重限制了劳动效率和农业产出。若印度整体地理位置北移约300公里,平均气温将降低&#xf…

3D Gaussian Splatting

3D高斯溅射(3D Gaussian Splatting )是一种基于显式三维高斯分布的场景表示与渲染方法。与传统的三维重建技术(如多边形网格、点云或隐式神经辐射场NeRF)不同,3DGS将场景表示为大量带有属性的3D高斯椭球的集合&#xf…

鸿蒙5:布局组件

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…