Schedula – Smart Appointment Booking Security & Risk Analysis

wordpress.org/plugins/schedula-smart-appointment-booking

Accept online bookings on WordPress, manage services & staff, send notifications, and take payments. A fast, modern appointment scheduler built fo …

0 active installs v1.1 PHP 7.4+ WP 6.0+ Updated Dec 8, 2025
appointment-bookingcalendarreservationschedulingservices
99
A · Safe
CVEs total1
Unpatched0
Last CVEJan 26, 2026
Download
Safety Verdict

Is Schedula – Smart Appointment Booking Safe to Use in 2026?

Generally Safe

Score 99/100

Schedula – Smart Appointment Booking has a strong security track record. Known vulnerabilities have been patched promptly. It's a solid choice for most WordPress installations.

1 known CVELast CVE: Jan 26, 2026Updated 5mo ago
Risk Assessment

The 'schedula-smart-appointment-booking' v1.1 plugin exhibits a mixed security posture. On the positive side, it demonstrates good practices in its handling of SQL queries, consistently using prepared statements, and all output is properly escaped, which significantly mitigates the risk of cross-site scripting (XSS) vulnerabilities. The presence of a nonce check and numerous capability checks suggests an awareness of secure development practices for authenticated actions. However, a notable concern is the presence of one unprotected REST API route, which represents a direct entry point into the plugin without proper authorization checks. The use of the `unserialize` function, while only present once, is a significant risk if the data being unserialized is not strictly controlled and validated, as it can lead to remote code execution.

The plugin's vulnerability history shows one past medium-severity CVE, which was related to missing authorization. While currently unpatched CVEs are zero, the past vulnerability type reinforces the concern about authorization for public-facing endpoints. The lack of taint analysis results is not necessarily a positive sign, as it could indicate the analysis was incomplete or the plugin's structure didn't lend itself to this type of analysis, rather than a complete absence of exploitable flows.

In conclusion, while the plugin has strengths in data handling and output sanitization, the unprotected REST API endpoint and the single instance of `unserialize` are critical areas of concern that require immediate attention. The past authorization vulnerability further highlights the need for robust authentication and authorization checks on all potential entry points.

Key Concerns

  • REST API route without permission callbacks
  • Dangerous function: unserialize
  • One unprotected entry point
  • Bundled library: Stripe PHP (potential for outdated version)
Vulnerabilities
1 published

Schedula – Smart Appointment Booking Security Vulnerabilities

CVEs by Year

1 CVE in 2026
2026
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2025-67970medium · 5.3Missing Authorization

Schedula <= 1.0 - Missing Authorization

Jan 26, 2026 Patched in 1.1 (8d)
Version History

Schedula – Smart Appointment Booking Release Timeline

v1.1Current
v1.0.01 CVE
Code Analysis
Analyzed Apr 16, 2026

Schedula – Smart Appointment Booking Code Analysis

Dangerous Functions
1
Raw SQL Queries
0
315 prepared
Unescaped Output
0
165 escaped
Nonce Checks
1
Capability Checks
17
File Operations
1
External Requests
1
Bundled Libraries
1

Dangerous Functions Found

unserialize$unserialized = @unserialize($settings_option);uninstall.php:72

Bundled Libraries

Stripe PHP

SQL Query Safety

100% prepared315 total queries

Output Escaping

100% escaped165 total outputs
Attack Surface
1 unprotected

Schedula – Smart Appointment Booking Attack Surface

Entry Points5
Unprotected1

REST API Routes 1

GET/wp-json/schesab/v1/appearance-settingsincludes/api/class-schedula-api-appearance.php:40

Shortcodes 4

[schesab_reservation_form] includes/frontend/class-frontend.php:33
[schesab_service_form] includes/frontend/class-frontend.php:34
[schesab_stripe_return] includes/frontend/class-frontend.php:40
[schesab_stripe_cancel] includes/frontend/class-frontend.php:41
WordPress Hooks 24
actionadmin_menuincludes/admin/class-admin.php:24
actionadmin_enqueue_scriptsincludes/admin/class-admin.php:25
actionadmin_initincludes/admin/class-admin.php:28
filterparse_queryincludes/admin/class-admin.php:37
filterposts_searchincludes/admin/class-admin.php:40
filterwp_sitemaps_posts_query_argsincludes/admin/class-admin.php:43
actionrest_api_initincludes/api/class-schedula-api-appearance.php:31
actionschesab_delete_incomplete_appointmentincludes/api/class-schedula-api-appointments.php:41
actionrest_api_initincludes/api/class-schedula-api-notifications.php:30
actionschesab_send_notification_hookincludes/api/class-schedula-api-notifications.php:31
actionphpmailer_initincludes/api/class-schedula-api-notifications.php:32
actionrest_api_initincludes/api/class-schedula-api-settings.php:29
actionrest_api_initincludes/api/class-schedula-api.php:37
actionplugins_loadedincludes/class-schedula.php:50
actionadmin_enqueue_scriptsincludes/class-schedula.php:58
filtercron_schedulesincludes/class-schedula.php:62
actioninitincludes/class-schedula.php:73
actionwp_enqueue_scriptsincludes/class-schedula.php:74
actionschesab_cleanup_pending_paymentsincludes/class-schedula.php:75
actioninitincludes/class-schedula.php:146
filterquery_varsincludes/class-schedula.php:147
filtertemplate_includeincludes/class-schedula.php:148
actionplugins_loadedincludes/database/class-database.php:40
actionwp_enqueue_scriptsincludes/frontend/class-frontend.php:44

Scheduled Events 7

schesab_send_notification_hook
schesab_send_notification_hook
schesab_send_notification_hook
schesab_send_reminders
schesab_cleanup
schesab_sync_calendars
schesab_generate_reports
Maintenance & Trust

Schedula – Smart Appointment Booking Maintenance & Trust

Maintenance Signals

WordPress version tested6.8.5
Last updatedDec 8, 2025
PHP min version7.4
Downloads295

Community Trust

Rating0/100
Number of ratings0
Active installs0
Developer Profile

Schedula – Smart Appointment Booking Developer Profile

vertim

4 plugins · 100 total installs

92
trust score
Avg Security Score
89/100
Avg Patch Time
7 days
View full developer profile
Detection Fingerprints

How We Detect Schedula – Smart Appointment Booking

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

Asset Fingerprints

Asset Paths
/wp-content/plugins/schedula-smart-appointment-booking/assets/css/bootstrap.min.css/wp-content/plugins/schedula-smart-appointment-booking/assets/css/main.css/wp-content/plugins/schedula-smart-appointment-booking/assets/css/style.css/wp-content/plugins/schedula-smart-appointment-booking/assets/js/bootstrap.bundle.min.js/wp-content/plugins/schedula-smart-appointment-booking/assets/js/main.js/wp-content/plugins/schedula-smart-appointment-booking/assets/js/moment.min.js/wp-content/plugins/schedula-smart-appointment-booking/assets/js/scheduler.js/wp-content/plugins/schedula-smart-appointment-booking/includes/admin/assets/css/admin-style.css+3 more
Script Paths
/wp-content/plugins/schedula-smart-appointment-booking/assets/js/bootstrap.bundle.min.js/wp-content/plugins/schedula-smart-appointment-booking/assets/js/main.js/wp-content/plugins/schedula-smart-appointment-booking/assets/js/moment.min.js/wp-content/plugins/schedula-smart-appointment-booking/assets/js/scheduler.js/wp-content/plugins/schedula-smart-appointment-booking/includes/admin/assets/js/admin-main.js/wp-content/plugins/schedula-smart-appointment-booking/includes/frontend/assets/js/frontend-main.js
Version Parameters
schedula-smart-appointment-booking/assets/css/bootstrap.min.css?ver=schedula-smart-appointment-booking/assets/css/main.css?ver=schedula-smart-appointment-booking/assets/css/style.css?ver=schedula-smart-appointment-booking/assets/js/bootstrap.bundle.min.js?ver=schedula-smart-appointment-booking/assets/js/main.js?ver=schedula-smart-appointment-booking/assets/js/moment.min.js?ver=schedula-smart-appointment-booking/assets/js/scheduler.js?ver=schedula-smart-appointment-booking/includes/admin/assets/css/admin-style.css?ver=schedula-smart-appointment-booking/includes/admin/assets/js/admin-main.js?ver=schedula-smart-appointment-booking/includes/frontend/assets/css/frontend-style.css?ver=schedula-smart-appointment-booking/includes/frontend/assets/js/frontend-main.js?ver=

HTML / DOM Fingerprints

CSS Classes
schesab-admin-wrapschesab-frontend-wrapschedula-booking-formschedula-calendarschesab-booking-detailsschesab-appointment-list
HTML Comments
<!-- Schedula Smart Appointment Booking Plugin --><!-- End Schedula Smart Appointment Booking Plugin --><!-- Admin Panel --><!-- Frontend Booking Section -->
Data Attributes
data-schesab-ajax-urldata-schesab-noncedata-schesab-booking-iddata-schesab-service-iddata-schesab-staff-id
JS Globals
SCHESAB_AJAX_URLSCHESAB_NONCESchedulaAdminSchedulaFrontendmoment
REST Endpoints
/wp-json/schesab/v1/bookings/wp-json/schesab/v1/services/wp-json/schesab/v1/staff/wp-json/schesab/v1/customers
Shortcode Output
[schedula_booking_form][schedula_appointments_list][schedula_admin_dashboard]
FAQ

Frequently Asked Questions about Schedula – Smart Appointment Booking