REPORT / 01
Analysis Report · Folder Analysis cache/fluentform_6.1.7 → cache/fluentform_6.1.8 — CVE-2025-13722
Shared security patch analysis results
02 ·
Lifecycle actions
cancel · resume · skip · regenerate
03 ·
Share this analysis
copy link · embed report
03 ·
CVE Security Analysis & Writeups
ai-generated · per cve
Comprehensive security analysis generated by AI for each confirmed CVE match. Click on a CVE to view the detailed writeup including vulnerability background, technical details, patch analysis, and PoC guide.
CVE-2025-13722
NVD
AI-Generated Analysis
05 ·
Findings
filter · search · paginate
Showing 0 to 0 of 0 results
app/Modules/Ai/AiFormBuilder.php
AI: 1 vulnerabilities
1 true positive
CVE-2025-13722
--- cache/fluentform_6.1.7/app/Modules/Ai/AiFormBuilder.php 2026-01-07 00:37:55.220596913 +0000+++ cache/fluentform_6.1.8/app/Modules/Ai/AiFormBuilder.php 2026-01-07 00:38:35.675104540 +0000@@ -27,7 +27,7 @@ public function buildForm() { try {- Acl::verifyNonce();+ Acl::verify('fluentform_forms_manager'); $form = $this->generateForm($this->app->request->all()); $form = $this->prepareAndSaveForm($form); wp_send_json_success([@@ -440,8 +440,18 @@ throw new Exception(esc_html__('Query is empty!', 'fluentform')); } + // Validate query length to prevent abuse (max 2000 characters)+ if (strlen($query) > 2000) {+ throw new Exception(esc_html__('Query is too long. Please limit your prompt to 2000 characters.', 'fluentform'));+ }+ $additionalQuery = Sanitizer::sanitizeTextField(Arr::get($args, 'additional_query')); + // Validate additional query length (max 1000 characters)+ if ($additionalQuery && strlen($additionalQuery) > 1000) {+ throw new Exception(esc_html__('Additional query is too long. Please limit to 1000 characters.', 'fluentform'));+ }+ if ($additionalQuery) { $query .= "\n including questions for information like " . $additionalQuery . "."; }
AI Analysis
I'll analyze the provided code diff for security vulnerabilities.
```
Vulnerability Existed: yes
TRUE POSITIVE
Improper Access Control (Authorization Bypass) - CWE-639 - app/Modules/Ai/AiFormBuilder.php - Line 30
[Old Code]
Acl::verifyNonce();
[Fixed Code]
Acl::verify('fluentform_forms_manager');
Explanation:
The original code used nonce verification (verifyNonce), which only validates request authenticity and CSRF protection but does NOT verify that the user has the required permissions/capabilities. The fixed code now uses proper capability-based access control (verify with 'fluentform_forms_manager' capability), ensuring only authorized users can build forms. This prevents privilege escalation and unauthorized form manipulation.
---
Vulnerability Existed: no
Input Validation (Length Limits) - CWE-400 - app/Modules/Ai/AiFormBuilder.php - Lines 443-446
[Old Code]
(No validation present)
[Fixed Code]
if (strlen($query) > 2000) {
throw new Exception(esc_html__('Query is too long. Please limit your prompt to 2000 characters.', 'fluentform'));
}
Explanation:
While this adds input validation, it is NOT fixing an existing vulnerability but rather adding a preventive control. The length validation prevents potential Denial of Service (DoS) attacks by limiting the size of queries sent to external AI services, which could otherwise consume excessive resources or incur high API costs. This is a defensive improvement, not a fix for an existing vulnerability.
---
Vulnerability Existed: no
Input Validation (Length Limits) - CWE-400 - app/Modules/Ai/AiFormBuilder.php - Lines 450-453
[Old Code]
(No validation present)
[Fixed Code]
if ($additionalQuery && strlen($additionalQuery) > 1000) {
throw new Exception(esc_html__('Additional query is too long. Please limit to 1000 characters.', 'fluentform'));
}
Explanation:
Similar to the query validation, this adds protective input validation for the additional query parameter. This is a preventive control against DoS and resource abuse, not fixing an existing vulnerability. The sanitization via Sanitizer::sanitizeTextField() was already present, and this adds an additional length constraint layer.
```
CVE Analysis Results:
CVE-2025-13722: Yes
View CVE Description
The Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder plugin for WordPress is vulnerable to Missing Authorization in all versions up to, and including, 6.1.7. This is due to missing capability checks on the `fluentform_ai_create_form` AJAX action. This makes it possible for authenticated attackers, with Subscriber-level access and above, to create arbitrary forms via the publicly exposed AI builder.
Showing 1 to 1 of 1 results