Description
The KiviCare – Clinic & Patient Management System (EHR) plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 4.4.0. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for unauthenticated attackers to mark arbitrary pending appointments as Confirmed and forge an associated completed payment record in wp_kc_payments_appointment_mappings using an attacker-supplied payment ID, bypassing payment entirely. This exploit is achievable on a default installation because the gateway resolution logic returns all registered gateways regardless of admin-enabled status, making the manual (KCPayLater) gateway always selectable.
Problem types
Product status
Any version
Timeline
| 2026-06-11: | Vendor Notified |
| 2026-07-09: | Disclosed |
Credits
Niv Kochan
References
www.wordfence.com/...-5c1a-401e-a46b-0278e96d2d71?source=cve
plugins.trac.wordpress.org/...api/AppointmentsController.php
plugins.trac.wordpress.org/...api/AppointmentsController.php
plugins.trac.wordpress.org/...paymentGateways/KCPayLater.php
plugins.trac.wordpress.org/...CAppointmentPaymentService.php
plugins.trac.wordpress.org/...es/KCPaymentGatewayFactory.php
plugins.trac.wordpress.org/...api/AppointmentsController.php
plugins.trac.wordpress.org/...api/AppointmentsController.php
plugins.trac.wordpress.org/...paymentGateways/KCPayLater.php
plugins.trac.wordpress.org/...CAppointmentPaymentService.php
plugins.trac.wordpress.org/...es/KCPaymentGatewayFactory.php
plugins.trac.wordpress.org/...icare-clinic-management-system