Easy!Appointments Security & Risk Analysis

wordpress.org/plugins/easyappointments

Integrate the booking form of Easy!Appointments directly into your WordPress pages.

600 active installs v1.4.3 PHP + WP 5.0+ Updated Jul 28, 2025
agendaappointmentsgoogle-calendaronline-appointmentsscheduler
96
A · Safe
CVEs total4
Unpatched0
Last CVEApr 1, 2025
Safety Verdict

Is Easy!Appointments Safe to Use in 2026?

Generally Safe

Score 96/100

Easy!Appointments has a strong security track record. Known vulnerabilities have been patched promptly.

4 known CVEsLast CVE: Apr 1, 2025Updated 8mo ago
Risk Assessment

The static analysis of EasyAppointments v1.4.3 reveals a mixed security posture. While the plugin demonstrates good practices by not utilizing dangerous functions, performing all SQL queries using prepared statements, and avoiding file operations and external HTTP requests, there are significant areas of concern. The presence of three AJAX handlers without authentication checks creates a substantial attack surface, making it susceptible to unauthorized actions. Additionally, while nonce checks are present for these handlers, their absence of capability checks is a critical oversight.

The vulnerability history of this plugin is worrying. With four previously identified CVEs, including one high and three medium severity vulnerabilities, a pattern of security weaknesses emerges. Common vulnerability types such as CSRF, XSS, missing authorization, and information exposure suggest recurring issues with input validation and access control. Although there are currently no unpatched CVEs for this specific version, the historical trend indicates a higher likelihood of future vulnerabilities if development practices do not improve.

In conclusion, EasyAppointments v1.4.3 exhibits strengths in its secure handling of SQL and its avoidance of common risky functionalities. However, the unprotected AJAX endpoints represent a significant and immediate risk. The plugin's past vulnerability record further amplifies concerns, suggesting a need for rigorous security audits and improved development discipline. Users should exercise caution and ensure this plugin is updated as soon as any new security patches become available.

Key Concerns

  • Unprotected AJAX handlers
  • Missing capability checks on AJAX
  • High/Medium severity CVE history
  • Common vulnerability types in history
  • Some unescaped output
Vulnerabilities
4

Easy!Appointments Security Vulnerabilities

CVEs by Year

1 CVE in 2019
2019
1 CVE in 2023
2023
1 CVE in 2024
2024
1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

High
1
Medium
3

4 total CVEs

CVE-2025-31828medium · 4.3Cross-Site Request Forgery (CSRF)

Easy!Appointments <= 1.4.2 - Cross-Site Request Forgery to Settings Update

Apr 1, 2025 Patched in 1.4.3 (332d)
CVE-2024-0698medium · 6.4Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Easy!Appointments <= 1.3.1 - Authenticated (Contributor+) Stored Cross-Site Scripting

Mar 4, 2024 Patched in 1.3.2 (148d)
CVE-2023-32295high · 8.1Missing Authorization

Easy!Appointments <= 1.4.0 - Authenticated(Subscriber+) Arbitrary File Deletion via 'disconnect'

Aug 10, 2023 Patched in 1.4.1 (337d)
CVE-2019-14936medium · 5.3Exposure of Sensitive Information to an Unauthorized Actor

Easy!Appointments <= 1.3.2 - Information Disclosure

Sep 11, 2019 Patched in 1.4.0 (1595d)
Code Analysis
Analyzed Mar 16, 2026

Easy!Appointments Code Analysis

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

Output Escaping

78% escaped9 total outputs
Data Flows
All sanitized

Data Flow Analysis

2 flows
connect (admin\class-easyappointments-admin.php:100)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
3 unprotected

Easy!Appointments Attack Surface

Entry Points4
Unprotected3

AJAX Handlers 3

authwp_ajax_easyappointments_connectincludes\class-easyappointments.php:160
authwp_ajax_easyappointments_disconnectincludes\class-easyappointments.php:161
authwp_ajax_easyappointments_verify_stateincludes\class-easyappointments.php:162

Shortcodes 1

[easyappointments] public\class-easyappointments-public.php:110
WordPress Hooks 7
actionplugins_loadedincludes\class-easyappointments.php:142
actionadmin_menuincludes\class-easyappointments.php:157
actionadmin_enqueue_scriptsincludes\class-easyappointments.php:158
actionadmin_enqueue_scriptsincludes\class-easyappointments.php:159
actionwp_enqueue_scriptsincludes\class-easyappointments.php:177
actionwp_enqueue_scriptsincludes\class-easyappointments.php:178
actioninitincludes\class-easyappointments.php:179
Maintenance & Trust

Easy!Appointments Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedJul 28, 2025
PHP min version
Downloads41K

Community Trust

Rating88/100
Number of ratings5
Active installs600
Developer Profile

Easy!Appointments Developer Profile

alextselegidis

1 plugin · 600 total installs

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

How We Detect Easy!Appointments

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/easyappointments/css/easyappointments-public.css/wp-content/plugins/easyappointments/css/easyappointments-admin.css/wp-content/plugins/easyappointments/js/frontend.js/wp-content/plugins/easyappointments/js/backend.js
Script Paths
/wp-content/plugins/easyappointments/js/frontend.js/wp-content/plugins/easyappointments/js/backend.js
Version Parameters
easyappointments/css/easyappointments-public.css?ver=easyappointments/css/easyappointments-admin.css?ver=easyappointments/js/frontend.js?ver=easyappointments/js/backend.js?ver=

HTML / DOM Fingerprints

CSS Classes
easyappointments-booking-formea-appointments-booking-formea-appointments-admin-wrap
HTML Comments
<!-- Easy!Appointments integration -->
Data Attributes
data-ea-urldata-ea-service-id
JS Globals
easyappointments_params
Shortcode Output
[easyappointments]
FAQ

Frequently Asked Questions about Easy!Appointments