IPBUF安全漏洞报告
English
CVE-2026-9496 CVSS 7.5 高危

CVE-2026-9496 pacote包拒绝服务漏洞

披露日期: 2026-05-26

漏洞信息

漏洞编号
CVE-2026-9496
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
pacote

相关标签

DoSpacotenpmCVE-2026-9496ReDoSNode.js

漏洞概述

pacote包11.2.7及以上版本存在拒绝服务漏洞,漏洞位于addGitSha函数。攻击者可通过精心构造的spec.rawSpec值,触发该函数中的正则替换和字符串操作逻辑缺陷,导致系统CPU资源被过度消耗。这种攻击可能致使目标进程完全停滞或崩溃,从而破坏服务的可用性。鉴于漏洞利用无需认证及用户交互,其对依赖pacote的应用系统构成了较高的安全风险。

技术细节

该漏洞位于pacote库的`lib/util/add-git-sha.js`文件中,核心在于`addGitSha`函数的设计缺陷。当该函数处理Git依赖规范中的`spec.rawSpec`参数时,未能有效防御恶意构造的输入数据。攻击者可以利用特定的字符串模式,触发函数内部正则表达式的灾难性回溯或低效的字符串操作逻辑。这种攻击会导致CPU计算量呈指数级增长,瞬间耗尽服务器资源。由于CVSS向量显示无需用户交互且无需认证,攻击者可轻易通过网络发起攻击,致使处理该请求的Node.js进程挂起或崩溃,从而造成严重的拒绝服务后果。受影响的应用程序在解析不受信任的包来源时尤其危险。

攻击链分析

STEP 1
侦察
攻击者识别出目标应用程序使用了易受攻击版本的pacote包(>=11.2.7)。
STEP 2
武器化
攻击者构造一个特殊的`spec.rawSpec`字符串,该字符串包含能够触发addGitSha函数中正则替换逻辑缺陷的特定模式。
STEP 3
交付
攻击者通过网络向目标应用程序发送包含恶意Git依赖规范的请求,或诱导应用程序下载包含该恶意规范的包。
STEP 4
利用
目标应用程序解析依赖时,pacote调用addGitSha函数处理恶意输入,导致CPU资源被大量占用。
STEP 5
影响
由于CPU资源耗尽,应用程序进程停滞或崩溃,无法响应正常用户的请求,导致拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-9496 (Conceptual) // This demonstrates how a malicious spec.rawSpec triggers the DoS. const pacote = require('pacote'); // Constructing a malicious spec object // The rawSpec contains a pattern designed to cause excessive CPU usage // in the addGitSha function via regex replacement logic. const maliciousSpec = { name: 'malicious-package', rawSpec: 'git+https://github.com/user/repo.git#<INSERT_COMPLEX_REGEX_PAYLOAD_HERE>', type: 'git' }; console.log('Attempting to trigger vulnerability...'); try { // This call is expected to hang or spike CPU to 100% const manifest = pacote.manifest(maliciousSpec); console.log('Manifest retrieved:', manifest); } catch (error) { console.error('Error during PoC execution:', error); }

影响范围

pacote >= 11.2.7

防御指南

临时缓解措施
建议立即将pacote库升级到修复了该漏洞的版本。如果暂时无法升级,应确保应用程序仅处理可信来源的Git依赖规范,并在沙箱或受控环境中运行包解析任务,以防止CPU资源耗尽影响宿主机系统。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表