Caldera Forms CiviCRM Security & Risk Analysis

wordpress.org/plugins/cf-civicrm

Integrate CiviCRM entities with Caldera Forms.

200 active installs v1.0.5 PHP + WP 4.7+ Updated Nov 8, 2019
calderacivicrmformsintegration
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Caldera Forms CiviCRM Safe to Use in 2026?

Generally Safe

Score 85/100

Caldera Forms CiviCRM has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 6yr ago
Risk Assessment

The "cf-civicrm" v1.0.5 plugin exhibits a mixed security posture. On the positive side, the plugin demonstrates good practices by exclusively using prepared statements for all its SQL queries and avoiding file operations or external HTTP requests. The absence of known CVEs and a clean vulnerability history is also a significant strength, suggesting a generally stable codebase. However, the plugin has a notable weakness in its handling of AJAX endpoints.

Specifically, the analysis reveals a substantial attack surface with 10 AJAX handlers, and a critical concern is that 3 of these lack proper authentication checks. While taint analysis did not uncover any immediate exploitable vulnerabilities, the presence of unsanitized entry points without authorization presents a significant risk. This could potentially lead to unauthorized actions if an attacker can craft specific requests to these unprotected AJAX endpoints. The plugin also shows a moderate percentage of improperly escaped output, which, while not flagged as critical, could contribute to Cross-Site Scripting (XSS) vulnerabilities if exploited in conjunction with other weaknesses.

In conclusion, the plugin's lack of historical vulnerabilities and sound database query practices are commendable. However, the presence of unprotected AJAX endpoints is a serious oversight that significantly elevates the risk profile. Addressing these unauthorized entry points should be the highest priority to improve the plugin's overall security.

Key Concerns

  • AJAX handlers without authentication checks
  • Significant portion of output not properly escaped
Vulnerabilities
None known

Caldera Forms CiviCRM Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

Caldera Forms CiviCRM Release Timeline

v1.0.2
Code Analysis
Analyzed Mar 16, 2026

Caldera Forms CiviCRM Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
214
422 escaped
Nonce Checks
5
Capability Checks
0
File Operations
0
External Requests
0
Bundled Libraries
1

Bundled Libraries

Select2

Output Escaping

66% escaped636 total outputs
Data Flows · Security
All sanitized

Data Flow Analysis

2 flows
do_code_cividiscount (includes\class-civicrm-caldera-forms-ajax.php:173)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
3 unprotected

Caldera Forms CiviCRM Attack Surface

Entry Points10
Unprotected3

AJAX Handlers 10

authwp_ajax_civicrm_get_contactsincludes\class-civicrm-caldera-forms-ajax.php:34
authwp_ajax_civicrm_get_groupsincludes\class-civicrm-caldera-forms-ajax.php:35
authwp_ajax_flush_price_set_cacheincludes\class-civicrm-caldera-forms-ajax.php:36
authwp_ajax_civicrm_contact_reference_getincludes\class-civicrm-caldera-forms-ajax.php:37
noprivwp_ajax_civicrm_contact_reference_getincludes\class-civicrm-caldera-forms-ajax.php:38
authwp_ajax_do_code_cividiscountincludes\class-civicrm-caldera-forms-ajax.php:40
noprivwp_ajax_do_code_cividiscountincludes\class-civicrm-caldera-forms-ajax.php:41
authwp_ajax_civicrm_get_premiumsincludes\class-civicrm-caldera-forms-ajax.php:43
authwp_ajax_civicrm_get_state_provinceincludes\class-civicrm-caldera-forms-ajax.php:45
authwp_ajax_civicrm_get_countriesincludes\class-civicrm-caldera-forms-ajax.php:46
WordPress Hooks 103
actionadmin_noticescf-civicrm.php:196
actionplugins_loadedcf-civicrm.php:288
actioninitcf-civicrm.php:338
filtercaldera_forms_get_field_typesfields\civicrm_contact_reference\class-civicrm-contact-reference.php:43
filtercaldera_forms_render_get_formfields\civicrm_contact_reference\class-civicrm-contact-reference.php:44
filtercfc_filter_mapped_field_to_processorfields\civicrm_contact_reference\class-civicrm-contact-reference.php:46
filtercfc_filter_mapped_field_to_prerenderfields\civicrm_contact_reference\class-civicrm-contact-reference.php:47
filtercaldera_forms_magic_summary_field_valuefields\civicrm_contact_reference\class-civicrm-contact-reference.php:52
filtercaldera_forms_get_field_typesfields\civicrm_country\class-civicrm-country.php:45
filtercaldera_forms_render_get_formfields\civicrm_country\class-civicrm-country.php:47
filtercaldera_forms_view_field_civicrm_countryfields\civicrm_country\class-civicrm-country.php:50
filtercaldera_forms_magic_summary_field_valuefields\civicrm_country\class-civicrm-country.php:52
filtercaldera_forms_file_upload_handlerfields\civicrm_file\class-civicrm-file.php:46
actioncaldera_forms_field_settings_templatefields\civicrm_file\class-civicrm-file.php:49
filterrest_dispatch_requestfields\civicrm_file\class-civicrm-file.php:52
filterpre_move_uploaded_filefields\civicrm_file\class-civicrm-file.php:179
filterwp_handle_uploadfields\civicrm_file\class-civicrm-file.php:192
filtercaldera_forms_get_field_typesfields\civicrm_premium\class-civicrm-premium.php:45
filtercaldera_forms_render_get_fieldfields\civicrm_premium\class-civicrm-premium.php:49
filtercaldera_forms_get_field_typesfields\civicrm_state\class-civicrm-state.php:45
filtercaldera_forms_render_get_formfields\civicrm_state\class-civicrm-state.php:47
filtercaldera_forms_view_field_civicrm_statefields\civicrm_state\class-civicrm-state.php:50
filtercaldera_forms_magic_summary_field_valuefields\civicrm_state\class-civicrm-state.php:52
filtercaldera_forms_get_field_typesfields\discount\class-civicrm-discount.php:45
filtercaldera_forms_render_get_formfields\discount\class-civicrm-discount.php:46
actioncaldera_forms_autopopulate_typesfields\presets\class-civicrm-core-fields-presets.php:63
filtercaldera_forms_render_get_fieldfields\presets\class-civicrm-core-fields-presets.php:64
filtercaldera_forms_field_option_presetsfields\presets\class-civicrm-core-fields-presets.php:66
filtercaldera_forms_field_option_presetsfields\presets\class-civicrm-custom-fields-presets.php:64
actioncaldera_forms_autopopulate_typesfields\presets\class-civicrm-custom-fields-presets.php:67
filtercaldera_forms_render_get_fieldfields\presets\class-civicrm-custom-fields-presets.php:68
filtercaldera_forms_field_option_presetsfields\presets\class-civicrm-price-sets-presets.php:56
actioncaldera_forms_autopopulate_typesfields\presets\class-civicrm-price-sets-presets.php:59
filtercaldera_forms_render_get_fieldfields\presets\class-civicrm-price-sets-presets.php:60
filtercaldera_forms_render_setup_fieldfields\presets\class-civicrm-price-sets-presets.php:61
filtercaldera_forms_render_field_structurefields\presets\class-civicrm-price-sets-presets.php:63
actionwp_loadedincludes\class-civicrm-caldera-forms-assets.php:34
actioncaldera_forms_admin_assets_scripts_registeredincludes\class-civicrm-caldera-forms-assets.php:36
actioncaldera_forms_admin_assets_styles_registeredincludes\class-civicrm-caldera-forms-assets.php:37
actioncaldera_forms_editor_footerincludes\class-civicrm-caldera-forms-assets.php:39
filtercaldera_forms_render_get_formincludes\class-civicrm-caldera-forms-cividiscount.php:82
filtercaldera_forms_submit_get_formincludes\class-civicrm-caldera-forms-cividiscount.php:83
filtercaldera_forms_submit_get_formincludes\class-civicrm-caldera-forms-cividiscount.php:86
actioncfc_order_post_processorincludes\class-civicrm-caldera-forms-cividiscount.php:89
filtercfc_filter_price_field_value_getincludes\class-civicrm-caldera-forms-cividiscount.php:314
filtercfc_filter_price_field_configincludes\class-civicrm-caldera-forms-cividiscount.php:503
filtercfc_filter_price_field_configincludes\class-civicrm-caldera-forms-cividiscount.php:514
filtercaldera_forms_get_entryincludes\class-civicrm-caldera-forms-entries.php:36
actioncaldera_forms_field_settings_templateincludes\class-civicrm-caldera-forms-fields.php:56
filtercaldera_forms_presave_formincludes\class-civicrm-caldera-forms-forms.php:46
filtercaldera_forms_render_get_formincludes\class-civicrm-caldera-forms-forms.php:55
actioncaldera_forms_render_endincludes\class-civicrm-caldera-forms-forms.php:56
filtercaldera_forms_submit_get_formincludes\class-civicrm-caldera-forms-forms.php:59
actioncaldera_forms_submit_completeincludes\class-civicrm-caldera-forms-forms.php:60
filtercaldera_forms_get_panel_extensionsincludes\class-civicrm-caldera-forms-forms.php:64
filtercaldera_forms_magic_summary_should_use_labelincludes\class-civicrm-caldera-forms-forms.php:67
filtercaldera_forms_summary_magic_fieldsincludes\class-civicrm-caldera-forms-forms.php:69
actioncaldera_forms_render_get_formincludes\class-civicrm-caldera-forms-forms.php:71
filtercaldera_forms_render_get_fieldincludes\class-civicrm-caldera-forms-forms.php:74
filtercaldera_forms_render_setup_fieldincludes\class-civicrm-caldera-forms-forms.php:75
filtercaldera_forms_submit_get_formincludes\class-civicrm-caldera-forms-forms.php:78
filtercaldera_forms_get_form_templatesincludes\class-civicrm-caldera-forms-templates.php:30
filtercaldera_forms_get_form_processorsprocessors\activity\class-activity-processor.php:45
filtercaldera_forms_get_form_processorsprocessors\address\class-address-processor.php:45
filtercaldera_forms_render_get_formprocessors\address\class-address-processor.php:47
filtercaldera_forms_get_form_processorsprocessors\case\class-case-processor.php:45
filtercfc_custom_fields_extends_entitiesprocessors\case\class-case-processor.php:47
filtercaldera_forms_get_form_processorsprocessors\contact\class-contact-processor.php:63
filtercaldera_forms_render_get_formprocessors\contact\class-contact-processor.php:65
filtercaldera_forms_get_form_processorsprocessors\contribution\class-contribution-processor.php:45
filtercaldera_forms_get_form_processorsprocessors\dummy\class-dummy-processor.php:31
filtercaldera_forms_get_form_processorsprocessors\email\class-email-processor.php:54
filtercaldera_forms_render_get_formprocessors\email\class-email-processor.php:56
filtercaldera_forms_get_form_processorsprocessors\entity-tag\class-entity-tag-processor.php:45
filtercaldera_forms_get_form_processorsprocessors\group\class-group-processor.php:45
filtercaldera_forms_get_form_processorsprocessors\im\class-im-processor.php:54
filtercaldera_forms_render_get_formprocessors\im\class-im-processor.php:56
filtercaldera_forms_get_form_processorsprocessors\line-item\class-line-item-processor.php:36
filtercaldera_forms_get_form_processorsprocessors\membership\class-membership-processor.php:62
filtercaldera_forms_render_get_formprocessors\membership\class-membership-processor.php:64
actioncfc_notices_to_renderprocessors\membership\class-membership-processor.php:66
filtercaldera_forms_get_form_processorsprocessors\note\class-note-processor.php:45
filtercaldera_forms_get_form_processorsprocessors\order\class-order-processor.php:81
actioncaldera_forms_submit_pre_process_startprocessors\order\class-order-processor.php:83
filtercaldera_forms_ajax_returnprocessors\order\class-order-processor.php:257
filtercfc_current_membership_get_statusprocessors\order\class-order-processor.php:471
filtercfc_current_membership_get_statusprocessors\order\class-order-processor.php:491
filtercf_authorize_net_setup_customerprocessors\order\class-order-processor.php:573
actioncf_stripe_post_successful_chargeprocessors\order\class-order-processor.php:606
filtercaldera_forms_get_form_processorsprocessors\participant\class-participant-processor.php:80
filtercaldera_forms_render_get_formprocessors\participant\class-participant-processor.php:83
filtercaldera_forms_submit_get_formprocessors\participant\class-participant-processor.php:84
filtercfc_filter_price_field_configprocessors\participant\class-participant-processor.php:87
filtercfc_filter_price_field_structureprocessors\participant\class-participant-processor.php:88
filtercaldera_forms_render_get_formprocessors\participant\class-participant-processor.php:91
filtercfc_custom_fields_extends_entitiesprocessors\participant\class-participant-processor.php:93
actioncfc_order_post_processorprocessors\participant\class-participant-processor.php:243
filtercaldera_forms_get_form_processorsprocessors\phone\class-phone-processor.php:54
filtercaldera_forms_render_get_formprocessors\phone\class-phone-processor.php:56
filtercaldera_forms_get_form_processorsprocessors\relationship\class-relationship-processor.php:34
filtercaldera_forms_get_form_processorsprocessors\send-email\class-send-email-processor.php:44
filtercaldera_forms_get_form_processorsprocessors\website\class-website-processor.php:54
filtercaldera_forms_render_get_formprocessors\website\class-website-processor.php:56
Maintenance & Trust

Caldera Forms CiviCRM Maintenance & Trust

Maintenance Signals

WordPress version tested5.2.24
Last updatedNov 8, 2019
PHP min version
Downloads5K

Community Trust

Rating100/100
Number of ratings2
Active installs200
Developer Profile

Caldera Forms CiviCRM Developer Profile

Andrei Mondoc

1 plugin · 200 total installs

84
trust score
Avg Security Score
85/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect Caldera Forms CiviCRM

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/cf-civicrm/includes/css/civicrm-caldera-forms.css/wp-content/plugins/cf-civicrm/includes/js/civicrm-caldera-forms.js
Script Paths
/wp-content/plugins/cf-civicrm/includes/js/civicrm-caldera-forms.js
Version Parameters
cf-civicrm/includes/css/civicrm-caldera-forms.css?ver=cf-civicrm/includes/js/civicrm-caldera-forms.js?ver=

HTML / DOM Fingerprints

CSS Classes
civicrm-caldera-forms
Data Attributes
data-civicrm-caldera-forms-selector
JS Globals
window.CalderaFormsCiviCRM
Shortcode Output
[cf_civicrm_shortcode]
FAQ

Frequently Asked Questions about Caldera Forms CiviCRM