Campaign Monitor for WordPress Security & Risk Analysis

wordpress.org/plugins/forms-for-campaign-monitor

Make it easy for customers to subscribe to your Campaign Monitor mailing lists using any of the 5 elegant sign-up forms.

2K active installs v2.9.0 PHP 5.3+ WP 3.9+ Updated Nov 26, 2025
campaign-monitoremail-marketingsign-up-forms
74
B · Generally Safe
CVEs total3
Unpatched1
Last CVEJan 8, 2026
Safety Verdict

Is Campaign Monitor for WordPress Safe to Use in 2026?

Mostly Safe

Score 74/100

Campaign Monitor for WordPress is generally safe to use. 3 past CVEs were resolved. Keep it updated.

3 known CVEs 1 unpatched Last CVE: Jan 8, 2026Updated 4mo ago
Risk Assessment

The "forms-for-campaign-monitor" plugin v2.9.0 exhibits a concerning security posture, primarily due to its significant number of unprotected entry points and a history of vulnerabilities. The static analysis reveals a substantial attack surface with 3 out of 4 entry points lacking authentication checks, specifically 3 AJAX handlers. This is a critical weakness, as it allows any unauthenticated user to potentially trigger these functions. Furthermore, the code signals indicate a worrying lack of secure coding practices, with 0% of SQL queries utilizing prepared statements and only 11% of output being properly escaped. This suggests a high risk of SQL injection and cross-site scripting (XSS) vulnerabilities. The presence of 14 file operations and 4 external HTTP requests without explicit mention of sanitization further compounds these concerns.

The plugin's vulnerability history is a major red flag. With 3 known CVEs, one of which remains unpatched, and a common pattern of missing authorization, sensitive information exposure, and XSS, it's clear that this plugin has a recurring security debt. The most recent vulnerability being in 2026 indicates that historical issues are still relevant and potentially present in this version. While the taint analysis did not reveal critical or high severity issues in this specific scan, the overall code quality and historical context strongly suggest that unaddressed vulnerabilities are likely. In conclusion, while the plugin doesn't appear to bundle critically outdated libraries like jQuery in this specific analysis, the high number of unprotected entry points, widespread use of raw SQL, poor output escaping, and significant vulnerability history paint a picture of a plugin that requires immediate attention and patching to mitigate substantial security risks.

Key Concerns

  • 3 unprotected AJAX handlers
  • 0% SQL queries using prepared statements
  • 11% of outputs properly escaped
  • 1 currently unpatched CVE
  • 3 medium severity CVEs
  • Missing capability checks
  • 4 flows with unsanitized paths
  • Bundled outdated jQuery v3.1.1
Vulnerabilities
3

Campaign Monitor for WordPress Security Vulnerabilities

CVEs by Year

1 CVE in 2023
2023
1 CVE in 2024
2024
1 CVE in 2026 · unpatched
2026
Patched Has unpatched

Severity Breakdown

Medium
3

3 total CVEs

CVE-2026-0674medium · 4.3Missing Authorization

Campaign Monitor for WordPress <= 2.9.0 - Missing Authorization

Jan 8, 2026Unpatched
CVE-2024-6569medium · 5.3Exposure of Sensitive Information to an Unauthorized Actor

Campaign Monitor for WordPress <= 2.8.15 - Unauthenticated Full Path Disclosure

Jul 26, 2024 Patched in 2.8.16 (1d)
CVE-2023-38474medium · 6.1Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Campaign Monitor for WordPress <= 2.8.12 - Reflected Cross-Site Scripting

Nov 27, 2023 Patched in 2.8.14 (57d)
Code Analysis
Analyzed Mar 16, 2026

Campaign Monitor for WordPress Code Analysis

Dangerous Functions
0
Raw SQL Queries
2
0 prepared
Unescaped Output
243
29 escaped
Nonce Checks
1
Capability Checks
0
File Operations
14
External Requests
4
Bundled Libraries
1

Bundled Libraries

jQuery3.1.1

SQL Query Safety

0% prepared2 total queries

Output Escaping

11% escaped272 total outputs
Data Flows
4 unsanitized

Data Flow Analysis

4 flows4 with unsanitized paths
ajaxFormHandler (forms\core\Ajax.php:106)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
3 unprotected

Campaign Monitor for WordPress Attack Surface

Entry Points4
Unprotected3

AJAX Handlers 3

authwp_ajax_handle_ajax_cm_formsforms\core\Ajax.php:24
authwp_ajax_ajax_handler_nopriv_cm_formsforms\core\Ajax.php:28
noprivwp_ajax_ajax_handler_nopriv_cm_formsforms\core\Ajax.php:30

Shortcodes 1

[cm_form] forms\core\Application.php:212
WordPress Hooks 13
actionadmin_noticescampaign-monitor.php:34
actionplugins_loadedcampaign-monitor.php:73
actionplugins_loadedcampaign-monitor.php:79
actionadmin_noticesforms\core\Application.php:732
actionadmin_menuforms\core\Application.php:733
actionadmin_enqueue_scriptsforms\core\Application.php:734
actionwp_enqueue_scriptsforms\core\Application.php:736
actionadmin_post_handle_cm_form_requestforms\core\Application.php:738
actionadmin_post_noprivforms\core\Application.php:739
actionadmin_initforms\core\Application.php:740
actionwpforms\core\Application.php:742
actionwp_footerforms\core\Application.php:774
actionadmin_noticesforms\core\Application.php:1049
Maintenance & Trust

Campaign Monitor for WordPress Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedNov 26, 2025
PHP min version5.3
Downloads124K

Community Trust

Rating34/100
Number of ratings40
Active installs2K
Developer Profile

Campaign Monitor for WordPress Developer Profile

Campaign Monitor

1 plugin · 2K total installs

76
trust score
Avg Security Score
74/100
Avg Patch Time
29 days
View full developer profile
Detection Fingerprints

How We Detect Campaign Monitor for WordPress

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/forms-for-campaign-monitor/css/admin.css/wp-content/plugins/forms-for-campaign-monitor/css/main.css/wp-content/plugins/forms-for-campaign-monitor/css/select2.min.css/wp-content/plugins/forms-for-campaign-monitor/js/admin.js/wp-content/plugins/forms-for-campaign-monitor/js/forms.js/wp-content/plugins/forms-for-campaign-monitor/js/select2.min.js
Script Paths
//connect.campaignmonitor.com/widget.js
Version Parameters
forms-for-campaign-monitor/css/admin.css?ver=forms-for-campaign-monitor/css/main.css?ver=forms-for-campaign-monitor/css/select2.min.css?ver=forms-for-campaign-monitor/js/admin.js?ver=forms-for-campaign-monitor/js/forms.js?ver=forms-for-campaign-monitor/js/select2.min.js?ver=

HTML / DOM Fingerprints

CSS Classes
cm-form-wrapper
HTML Comments
<!-- Campaign Monitor Form --><!-- /Campaign Monitor Form --><!-- Campaign Monitor Settings Page --><!-- /Campaign Monitor Settings Page -->+4 more
Data Attributes
data-cm-form-iddata-cm-form-submit-url
JS Globals
cm_formscampaignMonitorConnect
Shortcode Output
<div class='cm-form-wrapper'
FAQ

Frequently Asked Questions about Campaign Monitor for WordPress