IPBUF安全漏洞报告
English
CVE-2026-34841 CVSS 9.8 严重

CVE-2026-34841 Bruno供应链攻击植入RAT漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-34841
漏洞类型
供应链攻击
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Bruno

相关标签

供应链攻击RATBrunonpm远程代码执行CVE-2026-34841

漏洞概述

Bruno是一款开源API探索和测试IDE。在3.2.1版本之前,该产品遭遇了一起严重的供应链攻击。此次事件涉及被入侵的axios npm包,攻击者在其中引入了隐藏依赖,从而部署跨平台远程访问木马(RAT)。在2026年3月31日00:21 UTC至约03:30 UTC期间运行npm install的@usebruno/cli用户极易受到影响。该漏洞允许攻击者在受害者系统上执行任意代码,获取系统控制权,导致数据泄露、系统完整性受损及服务不可用。建议用户立即更新至安全版本以修复此高危漏洞。

技术细节

该漏洞的根源在于上游依赖库axios遭到供应链投毒。攻击者劫持了axios npm维护者账号,发布了包含恶意代码的版本。由于Bruno依赖axios,当开发者在特定时间窗口内执行`npm install`构建或安装Bruno时,包管理器会自动下载并解压恶意的axios包。该恶意包包含后安装脚本(postinstall script),该脚本会静默下载并执行一个跨平台的远程访问木马(RAT)。该RAT一旦运行,便会与攻击者的命令与控制(C2)服务器建立连接,赋予攻击者无需认证的远程访问权限。攻击者可借此窃取敏感信息、部署勒索软件或进行横向移动。由于攻击发生在依赖安装阶段,传统的应用防火墙和运行时扫描难以有效拦截。

攻击链分析

STEP 1
1. 供应链入侵
攻击者成功入侵或劫持了axios npm包的维护者账户。
STEP 2
2. 发布恶意包
攻击者利用 compromised 账户发布了包含恶意后门脚本的axios新版本。
STEP 3
3. 依赖安装
用户在特定时间窗口内运行`npm install`安装Bruno (@usebruno/cli),包管理器拉取了受污染的axios依赖。
STEP 4
4. 执行恶意代码
npm install过程中自动触发恶意axios包的postinstall脚本,下载并安装跨平台RAT。
STEP 5
5. 建立控制
RAT在受害者主机上运行,回连C2服务器,攻击者获取远程控制权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ PoC for detecting the malicious axios package in CVE-2026-34841. This script verifies the integrity of the installed axios package against known malicious hashes. Note: This is a detection PoC, not an exploit. """ import hashlib import os import sys import json # Hypothetical malicious hash for the compromised axios version MALICIOUS_HASHES = [ "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" ] def check_package_integrity(package_path): """Recursively calculate hash of package files to detect tampering.""" sha256 = hashlib.sha256() if not os.path.exists(package_path): print(f"[-] Path not found: {package_path}") return False for root, dirs, files in os.walk(package_path): for file in files: file_path = os.path.join(root, file) with open(file_path, 'rb') as f: sha256.update(f.read()) current_hash = sha256.hexdigest() print(f"[*] Calculated hash for {package_path}: {current_hash}") if current_hash in MALICIOUS_HASHES: print("[!] ALERT: Malicious package detected matching CVE-2026-34841!") return True else: print("[+] Package hash does not match known malicious signatures.") return False if __name__ == "__main__": # Check node_modules for axios target_path = "node_modules/axios" if len(sys.argv) > 1: target_path = sys.argv[1] print(f"[*] Scanning {target_path}...") is_compromised = check_package_integrity(target_path) if is_compromised: sys.exit(1) else: sys.exit(0)

影响范围

Bruno < 3.2.1

防御指南

临时缓解措施
对于在2026年3月31日特定时间段内安装过Bruno的环境,建议立即隔离并进行全面恶意软件扫描。由于涉及供应链攻击,即使升级了Bruno,底层恶意axios包可能仍存在于缓存中,因此必须强制清除npm缓存并重新构建项目。

参考链接

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