每周下载超 300 万次的 NPM 包被爆存在严重漏洞!

node-pac-proxy-agent:HTTP和HTTPS的PAC文件代理`http.Agent`实现 pac-proxy-agent HTTP和HTTPS的代理http.Agent实现 该模块提供了一个http.Agent实现,该实现检索指定的并使用它来解析哪个HTTP,HTTPS或SOCKS代理,或者是否应使用直接连接来连接到HTTP端点。 它旨在与内置的http和https模块一起使用。 安装 使用npm安装: $ npm install pac-proxy-agent 例子 var url = require ( 'url' ) ; var http = require ( 'http' ) ; var PacProxyAgent = require ( 'pac-proxy-agent' ) ; // URI to a PAC proxy file to use (the "pac+" prefix is stripped) var proxy = 'pac+https://c 立即下载

本周,开发人员 Tim Perry 披露了一个关于 pac-resolver 的严重漏洞,当一些本地用户在发出 HTTP 请求时,黑客可通过该漏洞肆意运行用户在 Node.js 进程中的任意代码。

此次漏洞与 PAC 文件有关

在此之前,pac-resolver 包的每周下载量超过了 300 万次,这个漏洞扩张到了依赖于开源的Node.js 应用程序。Pac-resolver 自诩为一个模块,它接受 JavaScript 代理配置文件,并为应用生成一个函数来映射特定的域以使用代理。

据 Tim Perry 透露,他是在为 HTTP 工具包添加代理支持时发现这一漏洞的,当他在审核 pac-resolver 代码时却遇到了安全问题。随后这个漏洞被追踪为 CVE-2021-23406,与模块处理代理自动配置 (PAC) 文件的方式有关。

PAC 文件由指定代理配置的 JavaScript 代码组成,它决定了哪些网络请求应该通过代理,哪些应该直接发出。例如,在 PAC 文件中,网络管理员可以明确指定一个网络代理,然后所有流量都应通过该代理进行路由,访问这个列表里面的域名的时候不通过代理服务器:

function FindProxyForURL(url, host) {
// Send all *.example requests directly with no proxy:
if (dnsDomainIs(host, '.example.com')) {
return 'DIRECT';
}
// Send every other request via this proxy:
return 'PROXY proxy.example.com:8080';
}

在上面的例子中,“example.com”的网络请求将绕过代理,而其余的流量则会按照指示通过代理服务器。

讲到这里,我们就不得不提到 PAC 标准。它最初于 1996 年作为 Netscape Navigator 2.0 的一部分被推出, 直到今天仍然被广泛使用。例如,Web Proxy Auto-Discovery Protocol (WAPD) 使用 DNS 或 DHCP 服务来定位网络上的 PAC 文件,并将代理配置导入到应用程序中。然而,随着代理配置变得越来越高,PAC 文件中的 JavaScript 代码也随之变得越来越复杂,并且被理想化地设计为在虚拟化环境 (VM) 中运行。

只需几行代码就可以绕过 VM,导致 RCE(remote code execution,即远程代码执行) 

例如,一个名为 Pac-Proxy-Agent 的相关 NPM 包 ,它由同一作者制作,每周下载量超过 200 万次,并且为 Node.js 应用程序提供 PAC 文件支持。Pac-Proxy-Agent 通过获取 PAC 文件的 URL 检索文件,然后充当 Node.js HTTP 代理来处理应用程序的传出请求。但是 Pac-Proxy-Agent 无法正确沙箱 PAC 文件,因为它使用了易受攻击的 pac-resolver 模块,该模块进一步依赖 “degenerator” 来构建 PAC 功能。

Degenerator 是同一作者的另一个包,它使用 Node.js 的 “VM” 模块将任意代码转换为沙箱函数。由于 Node.js 的文档中明确说明,“ vm 模块不是一种安全机制,不要用它来运行不受信任的代码” ,因此,当使用 pac-resolver、Pac-Proxy-Agent 和 proxy-agent 等包时,degenerator 的输出则会带来一定的安全风险。

Perry 在另一个博客中声称,“这是一个非常容易犯的错误,它的文本很小(坦率地说,它应该只能算是页面上的标题)”, Perry 进一步解释说:“这造成了一个大问题,虽然 VM 确实试图在一个独立的上下文中创建一个隔离的环境,但有很多简单的方法可以访问原始环境,并且能够完全摆脱沙箱……允许‘沙箱’中的代码在你的系统上做任何它想做的事情。”

在这个基础上,Perry 利用代码演示了攻击者如何突破虚拟机:

“这就是突破 VM 模块沙箱所需的全部内容,如果你能让一个易受攻击的目标使用这个 PAC 文件作为他们的代理配置,那么你就可以在他们的机器上运行任意代码,”Perry 解释道。

该漏洞严重影响那些使用 pac-resolver 5.0.0 之前版本的人,甚至在他们的 Node.js 应用程序中传递,并且在以下任意一种情况下,远程攻击者都可以配置恶意 PAC URL 并在使用代理配置发出 HTTP 请求时在计算机上运行任意代码。

  • 使用 PAC 文件进行代理配置
  • 在启用 WPAD 的系统上读取和使用 Node.js 中的操作系统代理配置
  • 使用不受信任来源的代理配置( env、配置文件、远程配置端点、命令行参数)

在 5.0.0 版本中对 pac-resolver 的修复只是简单地将 degenerator 版本升级到 3.0.1,核心修复程序则采用了degenerator 本身,并通过 vm2 模块实现了更强大的沙箱机制,以“防止不受信任的代码的权限升级”。

最后,Perry 建议受这个漏洞影响的开发人员应尽快升级到 pac-resolver 5.0.0 或更高版本以修复其应用程序中的这种漏洞。

node-pac-resolver:从PAC文件生成异步解析器函数 pac-resolver 从生成异步解析器函数 该模块接受JavaScript字符串代码,该字符串应为,并返回生成的异步FindProxyForURL()函数。 安装 使用npm安装: $ npm install pac-resolver 例子 给定名为proxy.pac的PAC代理文件: function FindProxyForURL ( url , host ) { if ( isInNet ( myIpAddress ( ) , "10.1.10.0" , "255.255.255.0" ) ) { return "PROXY 1.2.3.4:8080" ; } else { return "DIRECT" ; } } 您可以使用pac-resolver来使用此PAC文件,如下所示: var fs = require ( 'fs' ) ; 立即下载

相关推荐

PAC-Designer

isppac20   利用可编程模拟器件配合相应的开发工具软件PAC-Designer,便可以像设计数字电路那样方便、快捷地完成模拟电路的设计、修改、编程和验证,从而极大的缩短产品的研制周期并增强其竞争力。目前,可编程模拟器件已在电子线路实验、传感器匹配、数据采集、信号处理、仪器仪表、控制与监测、人工神经网络等重要领域中得到了初步的应用并展现出广阔的应用前景。可以预期,随着,模拟可编程技术的不断进步和品种的逐步丰富,可编程模拟器件将会成为实现模拟电路的首选器件和最佳选择。

npm包安全漏洞检查

在包里运行如下的命令可以自动下载安装新版本依赖,升级到不向后兼容的新版本时,依赖的调用逻辑可能需要重写。修复漏洞的方法就是升级依赖版本。在包里运行如下的命令可以自动下载安装。

dengjiax的博客 1035

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 172

nodejs 为HTTPS添加proxy

如果是在内网用nodejs的http或https去访问外部网站,需要添加proxy, 首先要用npm安装https-proxy-agent,然后执行以下代码代码块var HttpsProxyAgent = require('https-proxy-agent') var path = req.query.path; var proxy = 'http://user:pass@xxx.com:por

yuan882696yan的专栏 1万+

Cartographer全局重定位优化:无初始位姿约束的2万平工厂秒级定位实践

本文深入解析了Cartographer在2万平工业场景中的全局重定位优化实践,通过分支定界优化、子图动态加载和多传感器融合等关键技术,实现了无初始位姿约束下的秒级重定位。特别针对大场景下的快速重定位需求,优化后的系统在RK3588平台上表现出色,定位耗时从47秒降至1.8秒,成功率提升至91%,为工业自动化提供了高效解决方案。

rose2的博客 969

1.深入浅出:理解三极管截止、放大和饱和状态!——参考《模拟电子技术基础》清华大学华成英主讲

幼儿园水平理解三极管截止、放大和饱和状态!书上看不懂,听课听不懂的过来! 绕不开的三极管结构 以NPN为例,晶体三极管的结构,这是很多人不想看的,但是确实是非常重要的!不看结构是理解不了工作原理的! (这样记忆:N是negative,负,代表多子为电子;P是positive,正,代表多子为空穴) 注意观察三极管的结构,有助于理解工作时的状态。 两张图结合起来看,略作解释: 1.图中空心为空穴带正...

Hardware_harder的博客 4万+

关于npm i出现的安全漏洞问题

该命令会在你更新或者安装了新的依赖包后自动运行。npm audit fix 是自动修复版本安全问题的,会版本修复到可用的安全版本,然后如果npm audit fix无效的,切记慎用npm audit fix --force 这个是强制将版本更新到最新可用的安全版本,如果盲目使用的话可能会造成依赖问题(如A包依赖B包,结果B包强制更新,依赖找不到了),所以需要使用npm audit查看具体问题与可解决的版本。下面会对npm aduit命令使用后的漏洞信息进行讲解。

for_tonight的博客 1238

避坑指南:Ubuntu 22.04上源码编译Autoware.universe(Humble版)的完整流程与常见错误修复

本文详细介绍了在Ubuntu 22.04上源码编译Autoware.universe(Humble版)的完整流程与常见错误修复方法。从环境准备、依赖安装到编译优化,提供了实用的避坑指南和解决方案,帮助开发者高效完成安装并避免常见问题。特别针对源码安装过程中的疑难杂症给出了具体修复建议。

weixin_33712987的博客 383

周下载量近400万次的NPM流行包可遭劫持,可影响千余家组织机构

聚焦源代码安全,网罗国内外最新资讯!专栏·供应链安全数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危...

smellycat000的专栏 1022

【全开源】旅游系统源码(Uniapp+FastAdmin+ThinkPHP)

通过源码的灵活配置和定制开发,我们可以根据旅游企业的实际需求,快速构建出符合其业务特点的旅游系统。旅游系统源码,作为这一变革的基石,为旅游业的数字化转型提供了强有力的支撑。通过深入研究和应用旅游系统源码,我们能够构建出更加智能、便捷、个性化的旅游服务平台,满足游客日益增长的旅游需求。国际化发展:随着全球化的深入发展,旅游系统源码也将迎来国际化的发展机遇,为国内外游客提供更加便捷、高效的旅游服务。跨界融合:旅游系统源码将与更多领域进行跨界融合,如与交通、餐饮、购物等行业的结合,为游客提供更加丰富的旅游体验。

2401_84413757的博客 2154

AS7262六通道可见光传感器:从光谱原理到物联网色彩检测实战

光谱检测是嵌入式感知领域的关键技术,其核心原理是通过特定波长的滤光片分离光线并转换为电信号,从而实现对环境光或物体反射光的成分分析。这项技术的价值在于将复杂的光学分析简化为可编程读取的数字信号,极大降低了色彩检测在物联网和智能设备中的应用门槛。在智能农业、工业分拣、环境监测等场景中,精确的光谱数据能够驱动自动化决策,例如评估植物光照条件或识别物料颜色。本文以Adafruit AS7262传感器为例,深入解析其基于硅干涉滤光片的六通道设计,并通过Arduino与Python实战,演示如何快速构建从数据采集到可

weixin_28738173的博客 598

VM2 JavaScript 沙箱库中存在严重的 RCE 漏洞

聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士热门的 JavaScript 沙箱 VM2 库中存在一个严重的 RCE 漏洞 (CVE-2023-29017)。多款软件使用该哭在虚拟化环境中安全地运行代码。该 VM2 库旨在 Node.js 服务器的隔离上下文中运行不受信任的代码,它允许部分执行代码并阻止对系统资源或外部数据的越权访问。VM2 在 NPM 包库中的每月下载量超过1600万次,用...

smellycat000的专栏 1180

EtherCAT ROS2 入门教程(一)

本文介绍了EtherCAT驱动与ROS2的集成方案,主要包括三部分内容:1)在Ubuntu 22.04上安装IgH EtherCAT主站的详细步骤,包括内核配置、源码编译和网络适配器设置;2)构建ethercat_driver_ros2,通过ros2_control描述文件配置硬件接口和EtherCAT从站模块插件;3)使用方法,包括启动EtherCAT主站和运行配置包。该方案支持通过参数文件定义硬件接口,并提供通用和专用两种EtherCAT模块插件,便于开发基于EtherCAT的工业应用。

机器人控制与仿真应用 1531

热门 React Native NPM 包中存在严重漏洞,开发人员易受攻击

该漏洞由 JFrog 公司的安全研究员发现,编号是CVE-2025-11953,CVSS评分为9.8,影响 React Native Community CLI NPM 包 (@react-native-community/cli)。随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。研究人员表示,该漏洞导致开发人员面临风险,可使未经身份验证的威胁人员通过发送给目标服务器的 POST 请求,以受攻击者控制的参数执行任意命令。

smellycat000的专栏 126

基于Costas环的载波同步实现及Matlab仿真

其中,第一个相位环接收带噪声的待同步载波,并产生一个相位误差信号,这个误差信号再通过第二个相位环进行反馈控制,使得两个相位环的相位差保持为90度,最终输出同步载波信号。接下来,我们可以编写Costas环的仿真程序,并将上面生成的信号输入到Costas环中进行同步,最终输出同步后的载波信号。综上所述,本文介绍了如何使用Matlab实现基于Costas环的载波同步,并给出相应的源代码。上述代码中,我们初始化了Costas环的各个参数,然后通过循环迭代实现了相位估计和相位误差控制,最终输出了同步后的载波信号。

2301_78484069的博客 1048

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NPM包被攻破后,如何评估与控制供应链爆炸半径

依赖管理是现代软件工程的基石,但第三方包引入的供应链风险不容忽视。当一个NPM包被攻破,“爆炸半径”决定了受影响的范围——不仅包括直接依赖,还有深藏在依赖树中的传递依赖、多版本副本以及可自动执行的install脚本。原理上,npm的扁平化安装和幽灵依赖让影响评估变得复杂,单靠package.json无法看清全貌。借助npm ls、npm explain以及锁文件审计,可以还原真实依赖图谱,量化风险传播路径,这是控制爆炸半径的技术价值所在。在安全事件响应、依赖升级、CI/CD构建等应用场景中,利用依赖审查、o

weixin_30808693的博客 394

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

热门 NodeJS 库 vm2中存在严重的沙箱逃逸漏洞

据开发者表示,CVE-2026-22709沙箱逃逸漏洞在vm2的3.10.1版本中已得到部分修复,而在随后的3.10.2更新中,开发者进一步强化了修复方案以防止潜在的绕过利用。开发者还公开了演示代码,展示攻击者如何在vm2沙箱中触发CVE-2026-22709漏洞实现沙箱逃逸,进而在主机系统上执行命令。去年十月,项目维护者 Patrik Šimek 决定重启vm2项目,并发布了修复了当时已知所有漏洞的3.10.0版本,且"仍可向下兼容至Node 6版本"。VMware修复多个严重的ESXi 沙箱逃逸漏洞。

smellycat000的专栏 256

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

npm安装报告及安全漏洞处理建议

这次npm i安装成功了,你的项目现在应该可以运行。但是,存在一些安全风险。建议你按以下步骤操作:首先尝试自动修复bash如果上一步之后还有漏洞,尝试强制修复(可能会进行一些不兼容的更新):bash注意:使用--force后,务必仔细测试你的项目功能,因为依赖的重大版本更新可能会导致代码出错。查看详细信息:如果还有残留漏洞,运行以下命令查看细节,了解是哪个包的问题以及如何解决:bashnpm audit手动处理:根据npm audit的报告,你可能需要手动修改中相应包的版本,然后再次运行。

BillKu的博客 1828

使用广泛的开源PCB文件查看器 Gerbv 含多个严重漏洞

聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士专栏·供应链安全数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成...

smellycat000的专栏 2205

速修复!开源编辑器CKEditor 中存在两个严重XSS漏洞,影响Drupal 和其它下游应用...

聚焦源代码安全,网罗国内外最新资讯!编译:代码卫士专栏·供应链安全数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成...

smellycat000的专栏 3206

NPM生态漏洞风暴:AI与NLP应用的RCE攻击危机与防御革命

摘要: 生成式AI与NLP技术的快速发展使75%以上的AI企业依赖NPM生态开发,但2025年以来,expr-eval、langflow等高下载量NPM库接连曝出RCE漏洞(如CVE-2025-12735、CVSS 9.6),导致服务器被控、数据泄露等严重风险。漏洞成因集中于输入校验缺失、沙箱失效及供应链污染,攻击路径包括表达式解析注入、AST代码执行及配置参数滥用。AI应用的复杂依赖链与自动化特性放大了漏洞影响,攻击面快速扩散至全供应链。防御需构建一体化体系,涵盖紧急修复(升级/限流)、技术防护(沙箱/A

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 867

数亿下载量的npm包被“投毒”,前端开源将如何?

开发者以node-ipc包进行供应链投毒,再次引发安全问题大讨论

优快云资讯 7649

Orval 中存在严重的代码注入漏洞,存在供应链安全风险

安全公告提到,该漏洞的根源在于“x-enum-descriptions”字段,“该漏洞可导致不受信任的OpenAPI规范通过 x-enum-descriptions 字段将任意TypeScript/JavaScript代码注入生成的客户端中,而该字段在getEnumImplementation() 函数中未经适当转义就被嵌入。随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。为此,我们推出“供应链安全”栏目。

smellycat000的专栏 72

NPM蠕虫漏洞披露

NPM项目已正式承认其存在一个长期的安全漏洞,该漏洞可能导致恶意的代码包可以在开发者系统上随意的运行任意代码,导致了第一个NPM创建的蠕虫。在一篇名为“npm无法限制恶意代码包的行为”的漏洞说明VU319816中,Sam Saccone描述了创建一个蠕虫需要的步骤以及怎么让它自动传播。尽管这是在2016年一月被报道出来的,然而从NPM仓库管理初始版本发布...

weixin_34406086的博客 320

npm安装 (high severity)高危漏洞提醒

问题npm在安装axios时候会出现一个1 high severity vulnerability提醒。

Siobhan_Mxin的博客 3085

刚输一行代码就报5次假漏洞,npm让程序员们累觉不爱

明敏 发自 凹非寺量子位 报道 | 公众号 QbitAI有这样一个命令,它可以帮助开发人员分析复杂的代码、查明特定漏洞。哇,这是什么好东西,快来试试!然而,当你真的开始执行这个命令时,却发...

量子位 5231
上一篇: Linux Lite 5.6 最终版正式发布,支持“Pay What You Want”下载方式
下一篇: MongoDB股价暴涨,成唯一市值超300亿美元的上市开源公司
开源头条
博客等级 码龄13年 1475粉丝 226原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值