
Ninja Forms – The Contact Form Builder That Grows With You Security & Risk Analysis
wordpress.org/plugins/ninja-formsThe 100% beginner friendly WordPress form builder. Drag & drop form fields to build beautiful, professional contact forms in minutes.
Is Ninja Forms – The Contact Form Builder That Grows With You Safe to Use in 2026?
Mostly Safe
Score 76/100Ninja Forms – The Contact Form Builder That Grows With You is generally safe to use. 74 past CVEs were resolved. Keep it updated.
Ninja Forms v3.14.1 presents a mixed security posture. While the plugin demonstrates some good security practices, such as a high percentage of SQL queries using prepared statements and a significant number of nonce and capability checks, several concerning areas require attention. The large attack surface, with 16 unprotected entry points out of 49 total, including AJAX handlers and REST API routes lacking proper authentication or permission checks, is a significant risk. Furthermore, the presence of dangerous functions like `unserialize` and the high number of flows with unsanitized paths, particularly the 6 identified as high severity in taint analysis, indicate potential vulnerabilities related to deserialization and path traversal. The plugin's historical vulnerability data, with a substantial number of past CVEs across various severity levels and common vulnerability types like code injection and SQL injection, suggests a pattern of recurring security issues, even though no unpatched CVEs are currently listed. The last reported vulnerability in February 2026, while in the future, is noted for its recency and type, warranting continued vigilance.
Key Concerns
- Unprotected AJAX handlers
- REST API routes without permission callbacks
- Dangerous function: unserialize
- Taint flows with unsanitized paths (High severity)
- High number of historically known CVEs
- Frequent vulnerability types: XSS, SQLi, Deserialization
Ninja Forms – The Contact Form Builder That Grows With You Security Vulnerabilities
CVEs by Year
Severity Breakdown
74 total CVEs
Ninja Forms <= 3.14.0 - Unauthenticated Information Disclosure in nf_ajax_submit AJAX Action
Ninja Forms – The Contact Form Builder That Grows With You <= 3.13.2 - Insecure Direct Object Reference to Unauthenticated Sensitive Information Exposure via Unscoped Bearer Token
Ninja Forms <= 3.13.2 - Missing Authorization to Unauthenticated Submission Disclosure
Ninja Forms – The Contact Form Builder That Grows With You <= 3.12.0 - Cross-Site Request Forgery to Plugin Settings Update
Ninja Forms – The Contact Form Builder That Grows With You <= 3.12.0 - Cross-Site Request Forgery to Limited File Deletion
Ninja Forms <= 3.11.0 - Unauthenticated PHP Object Injection
Ninja Forms <= 3.10.2.1 - Authenticated (Contributor+) Stored Cross-Site Scripting via CSTI
Ninja Forms – The Contact Form Builder That Grows With You <= 3.10.0 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You <= 3.10.0 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You <= 3.10.0 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.24 - Authenticated (Contributor+) Stored Cross-Site Scripting via Shortcode
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.22 - Authenticated (Subscriber+) Arbitrary Shortcode Execution
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.19 - Unauthenticated Stored Cross-Site Scripting via Form Calculations
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.17 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.17 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms Contact Form <= 3.8.15 - Reflected Self-Based Cross-Site Scripting via Referer
Ninja Forms <= 3.8.11 - Authenticated (Administrator+) Stored Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.10 - Reflected Cross-Site Scripting
Ninja Forms <= 3.8.6 - Cross-Site Request Forgery
Ninja Forms <= 3.8.4 - Authenticated (Subscriber+) Arbitrary Shortcode Execution
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.0 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You <= 3.8.0 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.8.0 - Cross-Site Request Forgery to Publicly Accessible Form Submission Export
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.8.0 - Authenticated (Author+) Stored Cross-Site Scripting
Ninja Forms Contact Form <= 3.7.1 - Unauthenticated Second Order SQL Injection
Ninja Forms Contact Form <= 3.6.33 - Authenticated (Admin+) Stored Cross-Site Scripting
Ninja Forms <= 3.6.25 - Authenticated (Administrator+) Stored HTML Injection
Ninja Forms <= 3.6.25 - Reflected Cross-Site Scripting via 'data'
Ninja Forms <= 3.6.25 - Missing Authorization to Contributor+ Form Submission Export
Ninja Forms <= 3.6.25 - Missing Authorization to Form Submission Export
Ninja Forms <= 3.6.25 - Denial of Service via Large Form Submissions
Ninja Forms <= 3.6.24 - Authenticated (Admin+) Arbitrary File Deletion
Ninja Forms Contact Form <= 3.6.21 - Reflected Cross-Site Scripting via 'title'
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.6.12 - Authenticated (Administrator+) PHP Objection Injection
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.6.10 - Code Injection
Ninja Forms Contact Form <= 3.6.9 - Cross-Site Scripting via field label
Ninja Ninja Forms Contact Form <= 3.6.10 - Authenticated (Admin+) Stored Cross-Site Scripting via import
Ninja Forms Contact Form <= 3.6.9 - Authenticated (Admin+) Cross-Site Scripting via label
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.6.9 - Cross-Site Request Forgery to Field Import and PHP Object Injection
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.6.7 - Email Address Disclosure
Ninja Forms Contact Form <= 3.6.3 - Authenticated SQL Injection
Ninja Forms <= 3.5.8.1 - Cross-Site Scripting
Ninja Forms <= 3.5.7 - Unprotected REST-API to Sensitive Information Disclosure
Ninja Forms <= 3.5.7 - Unprotected REST-API to Email Injection
Ninja Forms Contact Form <= 3.4.33 - Administrator Open Redirect
Ninja Forms Contact Form <= 3.4.33 - Authenticated SendWP Plugin Installation and Client Secret Key Disclosure
Ninja Forms <= 3.4.34 - Authenticated OAuth Connection Key Disclosure
Ninja Forms Contact Form <= 3.4.33 - Cross-Site Request Forgery to OAuth Service Disconnection
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.4.27 - Validation Bypass via Email Field
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.4.27 - Cross-Site Request Forgery to Plugin Installation
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.4.27.1 - Stored Cross-Site Scripting
Ninja Forms Contact Form <= 3.4.24.1 - Cross-Site Request Forgery leading to Stored Cross-Site Scripting
Ninja Forms Contact Form <= 3.4.22 - Stored Cross-Site Scripting
Ninja Forms Contact Form <= 3.3.21.1 - SQL Injection
Ninja Forms Contact Form <= 3.3.19 - Authenticated Open Redirect
Ninja Forms Contact Form <= 3.3.17 - Cross-Site Scripting via begin_date, end_date, or form_id Parameter
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.3.13 - Cross-Site Scripting
Ninja Forms Contact Form <= 3.3.13 - CSV Injection
Ninja Forms <= 3.3.8 - Insufficient Restrictions during Export Personal Data requests
Ninja Forms Contact Form <= 3.2.14 - Parameter Tampering
Ninja Forms Contact Form <= 3.2.13 - Cross-Site Scripting
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.0.31 - Arbitrary Wordpress Shortcode Injection
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 3.0.30 - HTML Injection
Ninja Forms Contact Form <= 2.9.55.1 - Authenticated SQL Injection
Ninja Forms Contact Form <= 2.9.51 - Multiple Reflected Cross-Site Scripting
Ninja Forms Contact Form 2.9.36 - 2.9.42 - PHP Object Injection
Ninja Forms Contact Form <= 2.9.28 - Stored Cross-Site Scripting
Ninja Forms Contact Form <= 2.9.27 - CSV Injection
Ninja Forms Contact Form <= 2.9.21 - Reflected Cross-Site Scripting
Ninja Forms Contact Form <= 2.9.18 - Cross-Site Scripting
Ninja Forms <= 2.9.10 - Reflected Cross-Site Scripting
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 2.8.8 - Reflected Cross-Site Scripting
Ninja Forms Contact Form <= 2.8.8 - Stored Cross-Site Scripting
Ninja Forms Contact Form – The Drag and Drop Form Builder for WordPress <= 2.8.6 - Reflected Cross-Site Scripting
Ninja Forms – The Contact Form Builder That Grows With You Code Analysis
Dangerous Functions Found
SQL Query Safety
Output Escaping
Data Flow Analysis
Ninja Forms – The Contact Form Builder That Grows With You Attack Surface
AJAX Handlers 29
REST API Routes 16
Shortcodes 4
WordPress Hooks 229
Scheduled Events 6
Maintenance & Trust
Ninja Forms – The Contact Form Builder That Grows With You Maintenance & Trust
Maintenance Signals
Community Trust
Ninja Forms – The Contact Form Builder That Grows With You Alternatives
FormFacade – Embed Google Forms in your website
formfacade
Embed Google Forms™ in your wordpress site
WPForms – Easy Form Builder for WordPress – Contact Forms, Payment Forms, Surveys, & More
wpforms-lite
The best WordPress contact form plugin. Drag & Drop form builder to create beautiful contact forms, payment forms, & other custom forms.
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder
fluentform
Get a fast contact form plugin. Create advanced forms using drag and drop form builder with all smart features.
SureForms – Contact Form, Payment Form & Other Custom Form Builder
sureforms
The most beginner-friendly, AI Form Builder for WordPress to create contact forms, payment forms & other custom forms with advanced features, with …
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder
everest-forms
The best WordPress form builder. Create contact forms, payment forms, conversational forms, custom forms, surveys, & quizzes using drag and drop.
Ninja Forms – The Contact Form Builder That Grows With You Developer Profile
5 plugins · 610K total installs
How We Detect Ninja Forms – The Contact Form Builder That Grows With You
Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.
Asset Fingerprints
/wp-content/plugins/ninja-forms/assets/css/admin-notices.css/wp-content/plugins/ninja-forms/assets/css/admin.css/wp-content/plugins/ninja-forms/assets/css/builder.css/wp-content/plugins/ninja-forms/assets/css/dashboard.css/wp-content/plugins/ninja-forms/assets/css/field.css/wp-content/plugins/ninja-forms/assets/css/form.css/wp-content/plugins/ninja-forms/assets/css/global.css/wp-content/plugins/ninja-forms/assets/css/legacy.css+30 more/wp-content/plugins/ninja-forms/assets/js/apps/admin/main.js/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings.js/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings/components/Date.js/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings/components/Select.js/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings/components/Text.js/wp-content/plugins/ninja-forms/assets/js/components/Date.js+22 more/wp-content/plugins/ninja-forms/assets/css/admin-notices.css?ver=/wp-content/plugins/ninja-forms/assets/css/admin.css?ver=/wp-content/plugins/ninja-forms/assets/css/builder.css?ver=/wp-content/plugins/ninja-forms/assets/css/dashboard.css?ver=/wp-content/plugins/ninja-forms/assets/css/field.css?ver=/wp-content/plugins/ninja-forms/assets/css/form.css?ver=/wp-content/plugins/ninja-forms/assets/css/global.css?ver=/wp-content/plugins/ninja-forms/assets/css/legacy.css?ver=/wp-content/plugins/ninja-forms/assets/css/modal.css?ver=/wp-content/plugins/ninja-forms/assets/css/styles.css?ver=/wp-content/plugins/ninja-forms/assets/js/apps/admin/main.js?ver=/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings.js?ver=/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings/components/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings/components/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/apps/shared/form-settings/components/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/components/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/components/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/components/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/framework/main.js?ver=/wp-content/plugins/ninja-forms/assets/js/forms/settings/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/forms/settings/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/forms/settings/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/main.js?ver=/wp-content/plugins/ninja-forms/assets/js/plugins/date/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/plugins/select/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/plugins/text/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/ready.js?ver=/wp-content/plugins/ninja-forms/assets/js/repeater.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/form-settings/components/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/form-settings/components/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/form-settings/components/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/modules/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/modules/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/modules/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/plugins/Date.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/plugins/Select.js?ver=/wp-content/plugins/ninja-forms/assets/js/shared/plugins/Text.js?ver=/wp-content/plugins/ninja-forms/assets/js/vendor/sweetalert2.min.js?ver=HTML / DOM Fingerprints
nf-form-wrapnf-form-titlenf-form-fieldsnf-field-labelnf-field-inputnf-field-wrapnf-submit-wrapnf-errors+12 more<!-- Ninja Forms --><!-- Ninja Forms Start Form --><!-- Ninja Forms End Form --><!-- Ninja Forms Settings -->+2 moredata-field-iddata-form-iddata-nf-field-typedata-nf-settingsdata-nf-repeater-idnfFormsninjaFormsnfFormsControllerNF_AdminNF_BuilderNF_Date+3 more/wp-json/ninja-forms/v1/forms/wp-json/ninja-forms/v1/settings/wp-json/ninja-forms/v1/fields/wp-json/ninja-forms/v1/actions/wp-json/ninja-forms/v1/submissions[ninja_forms_display_form id=