Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Open-Source-Seal-Security — 修复开源包使用了 tough-cookie 2.5.0 - CVE-2023-26136, | Kitploit
工具/GitHubGitHub/ronmadar/open-source-seal-security
静态分析漏洞分析代码分析供应链安全学习与教育
GitHubronmadar/open-source-seal-security

Open-Source-Seal-Security

修复开源包使用了 tough-cookie 2.5.0 - CVE-2023-26136,

查看仓库
252年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SEAL SECURITY 项目:开源工程师任务

创建包 tough-cookie V2.5.0 的新版本,用于修复关键漏洞 CVE-2023-26136,项目使用 Node.js V20 编写

包 tough-cookie 的 4.1.3 之前的版本存在原型污染漏洞,原因是在使用 CookieJar 且 rejectPublicSuffixes=false 模式时对 Cookie 的处理不当。该问题源于对象的初始化方式。

https://nvd.nist.gov/vuln/detail/CVE-2023-26136

原型污染是一种影响 JavaScript 的漏洞。原型污染指的是能够向现有的 JavaScript 语言构造原型(如对象)中注入属性的能力。JavaScript 允许修改所有对象的属性,包括其魔术属性,例如 proto、constructor 和 prototype。攻击者通过注入其他值来操纵这些属性,从而覆盖或污染 JavaScript 应用程序中基对象的对象原型。然后,Object.prototype 上的属性会通过原型链被所有 JavaScript 对象继承。当这种情况发生时,会导致拒绝服务(触发 JavaScript 异常),或者篡改应用程序源代码以强制攻击者注入的代码路径,从而导致远程代码执行

原型污染主要通过两种方式发生:

  • 不安全的对象递归合并
  • 按路径定义属性

重要说明:https://github.com/salesforce/tough-cookie/issues/282 https://security.snyk.io/package/npm/tough-cookie/2.5.0

=> 要修复 MemoryCookieStore 类中的漏洞,需要修改 putCookie 方法,以防止在 cookie.domain 被设置为 proto 时发生原型污染。

https://github.com/salesforce/tough-cookie/pull/283

a. 修改 tough_cookie_2.5.0\node_modules\tough-cookie\lib\memstore.js

将 memstore.js 中所有新建对象的地方从 {} Object.create(Object.prototype) 改为 Object.create(null), 这样我们使用的对象实例就不具有可被污染的原型属性。

  • 示例:console.log(a = Object.create(null)); 在对象 a 中 - 没有属性(或 proto)

b. 新建了 /node_modules/tough-cookie/lib/test-unit.js 在 vanillajs 中使用,它位于 tests 文件夹中的文件 cookie_jar_test.js “Issue #282 - Prototype pollution”

命令:node test-unit.js

c. 新建了文件 /node_modules/tough-cookie/lib/testVerifyVulnerable.js 验证漏洞行为已被修复。

命令:node testVerifyVulnerable.js

  1. change.diff : https://github.com/ronmadar/Open-Source-Seal-Security/blob/cf768f1932f087c30ebec7fe60c3fca323b4e54b/change.diff

a. 常规包 tough-cookie V 2.5.0

命令:npm install [email protected] && node index.js

b. 带有更改的压缩包 tough-cookie V 2.5.0 tgz 格式

命令:npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js

c.

  • 漏洞:该漏洞源于直接通过添加新属性 newProperty 修改 Object.prototype。 这意味着 JavaScript 环境中的每个对象都会继承该属性,可能会无意中改变它们的行为。

潜在危害 -

  • 原型污染: 通过直接向 Object.prototype 添加属性,存在污染整个原型链的风险。 这可能导致整个应用程序出现意外行为,因为任何遍历原型链的对象都可能受到影响。

  • 安全风险:在 Web 应用环境中,攻击者可以利用原型污染操纵对象和属性,可能导致特权提升、信息泄露等安全漏洞。

  • 兼容性问题:修改像 Object.prototype 这样的核心原型可能会引入与其他依赖标准行为的库或框架的兼容性问题。 在集成或更新依赖项时可能导致错误或意外行为。 d. 上面已写。

  1. 指向你 fork 的 tough-cookie 2.5.0 GitHub 仓库的链接 https://github.com/ronmadar/tough-cookie

如何安装此项目

  1. 克隆此项目
下载工具