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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-12793 — 针对 CVE-2026-12793 的概念验证漏洞利用,该漏洞是 WordPress JetFormBuilder 3.6.2 及之前版本中的未认证权限提升漏洞,可创建管理员账户。 | Kitploit
工具/GitHubGitHub/abraxas/cve-2026-12793
权限提升漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试学习与教育实验室与实践
GitHubabraxas/cve-2026-12793

CVE-2026-12793

针对 CVE-2026-12793 的概念验证漏洞利用,该漏洞是 WordPress JetFormBuilder 3.6.2 及之前版本中的未认证权限提升漏洞,可创建管理员账户。

查看仓库
7小时12分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs — CVE-2026-12793

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-12793

CVE-2026-12793

JetFormBuilder — Dynamic Blocks Form Builder 3.6.2 — jetmonsters

WordPress 的 JetFormBuilder — Dynamic Blocks Form Builder 插件在所有版本(包括 3.6.2)中均存在权限提升漏洞。原因在于插件在将所引用文章的内容解析为表单 schema 并执行 Advanced Validation 服务端回调之前,未验证提交的表单 ID 是否属于某个 JetFormBuilder 表单。这使得未认证攻击者可以创建新的管理员级别用户账户。

CVECVE-2026-12793 · CVE.org
CWECWE-269
CVSS严重:9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
产品JetFormBuilder — Dynamic Blocks Form Builder
受影响所有版本 至 3.6.2(含)
已修复3.6.2.1 及更高版本
认证无(见 source map)
实验环境仅限 127.0.0.1 · 厂商/客户披露包,非扫描器

公告(来自 source map)

公告中提到了 _jet_engine_booking_form_id 和 Advanced Validation。该 POST 字段是 Form_Handler::$form_key。路由钩子并非源码默认的 jet_form_builder_submit=submit;而是随机化的 gfb_request_args_key/value。PHP 方法名不是 HTTP action=。REST validate-field 在 3.6.2 上是错误的路径(validate_form_post_type 已经运行)。


入口

  • 方法: POST
  • 路径: /
  • 路由器: Form_Request_Router 监听 REQUEST[hook_key]=hook_val。这些并非源码默认的 jet_form_builder_submit=submit —— Form_Handler::set_jfb_request_args 会从选项 jet_form_builder_settings__options-tab 的 gfb_request_args_key / gfb_request_args_value 覆盖它们(首次加载时随机生成 6+12 个字符)。仍然发送 jet_form_builder_submit=submit 的 POST 永远不会匹配;WP 会渲染主题 HTML(约 80k)。表单 id 字段仍然是 _jet_engine_booking_form_id。
  • 备注: CVE-2026-12793:set_form_id 仅执行 absint()。get_blocks_by_post 对任意文章执行 parse_blocks()。实验环境种子:已发布的文章 slug 为 jfb-lab-carrier(post_type=post,不是 jet-form-builder),带有 jet-forms 字段 + _jf_actions register_user administrator,以及一个段落 JFB_HOOK_KEY=... JFB_HOOK_VAL=...,因此随机化的路由器键值对出现在公开 REST 响应体中(与真实表单会放入隐藏字段的值相同)。步骤 1 GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier(id + 钩子键值对)。步骤 2 POST / 携带该键值对、method=ajax、表单 id、login/email/password。不要使用 REST validate-field(在 3.6.2 中已经进行类型检查)。首页 HTML 为失败。

调用链

  • GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier -> id 以及 JFB_HOOK_KEY / JFB_HOOK_VAL(options-tab gfb_request_args_*)
  • POST / REQUEST[hook_key]=hook_val method=ajax(不是 jet_form_builder_submit=submit)
  • Form_Request_Router::listen (includes/request/request-router.php) 使用 Form_Handler::$hook_key/$hook_val
  • Form_Handler::process_form -> setup_form -> set_form_id 仅 absint(includes/form-handler.php:150-154, 183-200, 240)
  • send_form: Action_Handler::set_form_id -> 从该文章的 _jf_actions 设置 set_form_actions(includes/actions/action-handler.php:71-117)
  • Request_Handler::set_form_data -> Block_Helper::get_blocks_by_post 对任意文章执行 parse_blocks(includes/blocks/block-helper.php:186-201; includes/request/request-handler.php:30-33)
  • block-parsers Module::init_request 应用这些块(modules/block-parsers/module.php:101-119)
  • Default_Process_Event 运行 Register_User_Action::do_action wp_insert_user 并使用 settings.user_role(modules/actions-v2/register-user/register-user-action.php:66-215)

实验环境前置条件

  • 已激活 jetformbuilder 3.6.2 的 WordPress
  • 实验环境种子发布了一篇普通文章 slug=jfb-lab-carrier(post_type=post,不是 jet-form-builder),带有名为 login、email、password 的 jet-forms/text-field 块,以及 _jf_actions register_user role administrator、_jf_args load_nonce=hide
  • 通过 GET /?rest_route=/wp/v2/posts&slug=jfb-lab-carrier 发现 id

见证

POST JSON 包含 status success 和一个数字 user_id。后续 GET /?rest_route=/wp/v2/users/<user_id> 或稍后的列表包含 login poc_12793 且 role 为 administrator。唯一登录名 poc_12793 是标记 —— 而不是 hello-world HTML。

非成功

  • 通用的 200 hello world HTML
  • POST / 返回 200 且为约 80k 的主题 HTML(路由器未命中:仍在发送 jet_form_builder_submit=submit)
  • admin-ajax 400 响应体为 0
  • 来自 /jet-form-builder/v1/validate-field 的 Invalid form ID / Invalid security signature
  • status failed / nonce_failed / csrf_failed
  • 创建的是 subscriber 而不是 administrator
  • 使用真实的 jet-form-builder CPT id(那是预期行为,不是此 CVE)

补丁 / 修复

首先执行: 将 JetFormBuilder — Dynamic Blocks Form Builder 更新到 3.6.2.1 或更新版本。

升级后验证

  • 针对已修补的版本重新运行 CVE-2026-12793-Abraxas-Labs.py:映射的见证必须不出现。
  • 确认部署目录中的厂商公告 / changeset(见参考资料)。
  • WAF 签名是延迟,不是补丁。

如果无法立即更新

  • 禁用或隔离受影响的组件。
  • 在生产环境中搜寻见证条件(新的特权用户、意外文件、注入的行 —— 即此 CVE 的 map 所指出的任何内容)。

复现(授权实验环境)

目标仅限 http://127.0.0.1:8088(或你绑定的回环地址)。不要将此脚本指向互联网。

root@kitploit:~
python3 CVE-2026-12793-Abraxas-Labs.py

成功即响应体中出现上述见证。通用的 200 HTML 不是。


参考资料

  • CVE-2026-12793 · NVD

  • CVE-2026-12793 · CVE.org

  • plugins.trac.wordpress.org/changeset/3575346/jetformbuilder

  • www.wordfence.com/threat-intel/vulnerabilities/id/a61b2ecc-d4e1-4e71-9187-ddc3d3616a29?source=cve

  • github.com/advisories/GHSA-579w-q4cr-j8hc

  • nvd.nist.gov/vuln/detail/CVE-2026-12793

  • 插件目录:jetformbuilder

  • Trac 浏览器:plugins.trac.wordpress.org/jetformbuilder

  • SVN 标签:plugins.svn.wordpress.org/jetformbuilder

  • Abraxas Labs:abraxaslabs.tech · github.com/abraxas · @abraxas_null


记录(结构化)

root@kitploit:~
# CVE-2026-12793  (structured records)

- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-12793`
- CWE: CWE-269
- published: 2026-09-16T04:17:56.110

## NVD description

The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.6.2. This is due to the plugin not validating that a submitted form ID belongs to a JetFormBuilder form before parsing the referenced post's content as form schema and executing an Advanced Validation server-side callback. This makes it possible for unauthenticated attackers to create a new administrator-level user account.

## MITRE description

The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.6.2. This is due to the plugin not validating that a submitted form ID belongs to a JetFormBuilder form before parsing the referenced post's content as form schema and executing an Advanced Validation server-side callback. This makes it possible for unauthenticated attackers to create a new administrator-level user account.

## Affected

- jetmonsters JetFormBuilder — Dynamic Blocks Form Builder 0 affected

## References (JSON sources only)

- https://plugins.trac.wordpress.org/changeset/3575346/jetformbuilder
- https://www.wordfence.com/threat-intel/vulnerabilities/id/a61b2ecc-d4e1-4e71-9187-ddc3d3616a29?source=cve
- https://github.com/advisories/GHSA-579w-q4cr-j8hc
- https://nvd.nist.gov/vuln/detail/CVE-2026-12793

## GitHub advisory

The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege...

The JetFormBuilder — Dynamic Blocks Form Builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.6.2. This is due to the plugin not validating that a submitted form ID belongs to a JetFormBuilder form before parsing the referenced post's content as form schema and executing an Advanced Validation server-side callback. This makes it possible for unauthenticated attackers to create a new administrator-level user account.

免责声明

此包面向厂商、站点所有者以及获得授权的实验环境。该脚本仅与 127.0.0.1 通信。将其用于你并不拥有的系统未获 Abraxas Labs 授权。不提供任何担保。

abraxaslabs.tech · github.com/abraxas · @abraxas_null

下载工具
  • SSR 路径(相同 schema):Server_Side_Rule::validate_custom 调用 call_user_func,前提是字段规则值是不在 NOT_ALLOWED 中的 PHP 函数(modules/validation/advanced-rules/server-side-rule.php:187-194)