Wp Appointments Security & Risk Analysis

wordpress.org/plugins/wp-appointments

With totally AJAX based front & back ends, WP Appointments is a fully managed and flexible tool for building powerful appointments systems.

10 active installs v1.0 PHP + WP 4.2+ Updated Jan 27, 2016
appointmentsbookings
85
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Wp Appointments Safe to Use in 2026?

Generally Safe

Score 85/100

Wp Appointments has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 10yr ago
Risk Assessment

The "wp-appointments" v1.0 plugin exhibits a mixed security posture, with some concerning code practices despite a clean vulnerability history. The static analysis reveals several potential weaknesses that warrant attention. The presence of dangerous functions like `unserialize` and `create_function` is a significant red flag, as these can lead to serious vulnerabilities if not handled with extreme care and proper sanitization. Furthermore, the low percentage of SQL queries using prepared statements (6%) suggests a high risk of SQL injection vulnerabilities, especially given the volume of queries (18 total). The taint analysis confirms a flow with an unsanitized path, indicating a potential for sensitive data exposure or manipulation. Compounding these issues is the complete absence of nonce checks and only a single capability check across all entry points, leaving the plugin highly susceptible to CSRF and unauthorized actions. The low percentage of properly escaped output (29%) also increases the risk of XSS vulnerabilities.

Despite these significant code-level concerns, the plugin benefits from a clean vulnerability history with no recorded CVEs. This might suggest that the identified weaknesses have not been exploited in the wild, or that the plugin's limited attack surface (0 AJAX handlers, 0 REST API routes, etc.) has historically provided some protection. However, the presence of exploitable patterns in the code means this is not a secure state. The use of outdated bundled libraries (Select2 v3.3.2) also introduces a known attack vector that could be leveraged.

In conclusion, while the plugin has no known past vulnerabilities, the static analysis highlights critical security flaws related to dangerous function usage, unsanitized data flows, weak authentication/authorization checks, and poor output escaping. These issues, combined with outdated libraries, create a substantial risk that is not mitigated by the lack of historical CVEs. Remediation of these code-level issues is highly recommended to secure the plugin.

Key Concerns

  • Presence of dangerous functions (unserialize, create_function)
  • Low percentage of SQL prepared statements
  • Unsanitized path in taint analysis
  • Low percentage of properly escaped output
  • No nonce checks
  • Only 1 capability check
  • Bundled outdated library (Select2 v3.3.2)
Vulnerabilities
None known

Wp Appointments Security Vulnerabilities

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

Wp Appointments Release Timeline

No version history available.
Code Analysis
Analyzed Mar 17, 2026

Wp Appointments Code Analysis

Dangerous Functions
3
Raw SQL Queries
17
1 prepared
Unescaped Output
180
74 escaped
Nonce Checks
0
Capability Checks
1
File Operations
0
External Requests
0
Bundled Libraries
2

Dangerous Functions Found

unserialize$slots = unserialize(_set(_set($get_slots, '0'), 'interval_set'));app\back-end\classes\response_ajax.php:840
create_functionadd_action('init', create_function('$a', "remove_action( 'init', 'wp_version_check' );"), 2);app\helpers\common.php:8
create_functionadd_filter('pre_option_update_core', create_function('$a', "return null;"));app\helpers\common.php:9

Bundled Libraries

Select23.3.2TinyMCE

SQL Query Safety

6% prepared18 total queries

Output Escaping

29% escaped254 total outputs
Data Flows · Security
1 unsanitized

Data Flow Analysis

1 flows1 with unsanitized paths
<setup_db> (app\back-end\classes\setup_db.php:0)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Wp Appointments Attack Surface

Entry Points0
Unprotected0
WordPress Hooks 28
filterpage_attributes_dropdown_pages_argsapp\back-end\classes\pagetemplater.php:19
filterwp_insert_post_dataapp\back-end\classes\pagetemplater.php:20
filtertemplate_includeapp\back-end\classes\pagetemplater.php:21
actionadmin_menuapp\back-end\classes\page_register.php:8
filterwp_image_editorsapp\back-end\classes\thumb.php:53
actionadmin_initapp\back-end\classes\thumb.php:81
filteradmin_noticesapp\back-end\classes\thumb.php:87
filterimage_resize_dimensionsapp\back-end\classes\thumb.php:722
filterimage_downsizeapp\back-end\classes\thumb.php:769
filtermce_external_pluginsapp\back-end\templates\settings.tpl.php:399
filtermce_buttonsapp\back-end\templates\settings.tpl.php:400
filtertiny_mce_before_initapp\back-end\templates\settings.tpl.php:401
actioninitapp\helpers\common.php:8
filterpre_option_update_coreapp\helpers\common.php:9
filterwp_mail_from_nameapp\init.php:31
filterwp_mail_fromapp\init.php:32
actionphpmailer_initapp\init.php:33
filterwp_mail_content_typeapp\init.php:34
filtermandrill_payloadapp\init.php:35
actioninitapp\init.php:57
actioninitapp\init.php:61
actioninitapp\init.php:62
actionwp_enqueue_scriptsapp\init.php:66
actionwp_enqueue_scriptsapp\init.php:67
actionwp_headapp\init.php:68
actionadmin_enqueue_scriptsapp\init.php:73
actionadmin_enqueue_scriptsapp\init.php:74
filterset-screen-optionwp-appointments.php:18
Maintenance & Trust

Wp Appointments Maintenance & Trust

Maintenance Signals

WordPress version tested4.3.34
Last updatedJan 27, 2016
PHP min version
Downloads4K

Community Trust

Rating50/100
Number of ratings2
Active installs10
Developer Profile

Wp Appointments Developer Profile

Webinane

1 plugin · 10 total installs

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

How We Detect Wp Appointments

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/wp-appointments/app/assets/front-end/css/font-awesome.min.css/wp-content/plugins/wp-appointments/app/assets/front-end/css/bootstrap.min.css/wp-content/plugins/wp-appointments/app/assets/front-end/css/bootstrap-datepicker.min.css/wp-content/plugins/wp-appointments/app/assets/front-end/css/flags.css/wp-content/plugins/wp-appointments/app/assets/front-end/css/style.css/wp-content/plugins/wp-appointments/app/assets/front-end/css/responsive.css/wp-content/plugins/wp-appointments/app/assets/front-end/css/color.css/wp-content/plugins/wp-appointments/app/assets/front-end/js/bootstrap.min.js+17 more
Version Parameters
WST_PLUGIN_VERSION

HTML / DOM Fingerprints

CSS Classes
app-modal
Data Attributes
data-section
JS Globals
load_moreajax_urlconn_all_serviceslocation_add_newlocation_update_recordupload_title+1 more
FAQ

Frequently Asked Questions about Wp Appointments