IPBUF安全漏洞报告
English
CVE-2026-42338 CVSS 6.1 中危

CVE-2026-42338 ip-address库跨站脚本漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-42338
漏洞类型
跨站脚本 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
ip-address (JavaScript Library)

相关标签

XSSCross-Site ScriptingJavaScriptip-addressCVE-2026-42338Web Security

漏洞概述

CVE-2026-42338是JavaScript库ip-address中的一个安全漏洞。在10.1.1之前的版本中,Address6.group()和Address6.link()方法未对攻击者控制的输入进行HTML转义。此外,AddressError.parseMessage在特定分支也可能包含未转义内容。若应用程序将受影响方法的输出或错误消息作为HTML(如通过innerHTML)渲染,攻击者可利用此漏洞执行跨站脚本攻击。

技术细节

该漏洞属于典型的存储型或反射型跨站脚本(XSS),其根本原因在于输出编码缺失。在ip-address库的受影响版本中,Address6类的group()和link()方法在生成HTML字符串时,直接嵌入了未经净化的用户输入。同时,AddressError的parseMessage在处理无效输入时,也可能直接暴露原始数据。攻击者可构造包含恶意HTML/JavaScript代码的特殊字符串作为IPv6地址输入。当目标Web应用使用该库解析地址,并将上述方法的返回值或错误信息直接通过innerHTML插入DOM时,恶意代码将被浏览器解析执行。由于CVSS向量为UI:R,攻击通常需要诱导用户进行交互(如点击链接)才能触发载荷,从而窃取会话信息或执行恶意操作。

攻击链分析

STEP 1
步骤1
攻击者构造包含恶意HTML或JavaScript代码的特殊字符串作为IPv6地址输入。
STEP 2
步骤2
攻击者将恶意输入发送到使用ip-address库的目标Web应用程序。
STEP 3
步骤3
应用程序使用Address6类解析输入,并调用group()、link()方法或捕获构造函数抛出的AddressError。
STEP 4
步骤4
应用程序将上述方法的返回值或错误对象的parseMessage属性,通过innerHTML等不安全方式直接渲染到页面DOM中。
STEP 5
步骤5
受害者的浏览器解析未转义的恶意代码,导致XSS攻击执行,可能窃取Cookie或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-42338 // This demonstrates XSS via unescaped output in ip-address library const Address6 = require('ip-address').Address6; // Malicious payload containing HTML/JS var payload = "<img src=x onerror=alert('XSS')>"; try { // Attempt to create an Address6 object with the payload var address = new Address6(payload); // Vulnerable method: group() returns unescaped HTML string var htmlContent = address.group(); // Simulating vulnerable rendering in the application // If the app uses innerHTML, XSS triggers here document.body.innerHTML = htmlContent; } catch (e) { // Vulnerable branch: parseMessage may contain unescaped payload if (e.parseMessage) { // Rendering the error message directly leads to XSS document.body.innerHTML = e.parseMessage; } }

影响范围

ip-address < 10.1.1

防御指南

临时缓解措施
在无法立即升级库版本的情况下,开发者应确保不将Address6对象的group()、link()方法返回值或错误对象的parseMessage属性直接作为HTML插入DOM。建议使用DOMPurify等库对输出进行净化,或仅使用安全的文本插入API,确保浏览器将其作为纯文本而非可执行代码处理。

参考链接

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