One student can lock up an instructor's entire recurring schedule in a single request.
Fix
Cap the number of occurrences a single weekly booking may reserve (configurable per offering, or a sane default), and/or require the offering's allow_weekly flag to be set.
**Severity: Low** — abuse / availability DoS.
## Problem
A single `recurrence=weekly` booking reserves **every** unbooked slot in the recurrence group with no cap ([src/Booking/BookingEndpoint.php:144-149](src/Booking/BookingEndpoint.php#L144-L149)).
## Impact
One student can lock up an instructor's entire recurring schedule in a single request.
## Fix
Cap the number of occurrences a single weekly booking may reserve (configurable per offering, or a sane default), and/or require the offering's `allow_weekly` flag to be set.
Verified resolved on main (061d09e, PR #38): BookingEndpoint::MAX_WEEKLY_OCCURRENCES caps a single weekly booking at 12 occurrences, so one request can no longer lock an instructor's entire recurring series. Note the optional second half of the suggested fix (enforcing the offering's allow_weekly flag at booking time) is not implemented — the cap alone addresses the lockup abuse described here; flag enforcement can be a separate enhancement if wanted. Re-confirmed during the 2026-06-10 security review pass.
Verified resolved on main (061d09e, PR #38): BookingEndpoint::MAX_WEEKLY_OCCURRENCES caps a single weekly booking at 12 occurrences, so one request can no longer lock an instructor's entire recurring series. Note the optional second half of the suggested fix (enforcing the offering's allow_weekly flag at booking time) is not implemented — the cap alone addresses the lockup abuse described here; flag enforcement can be a separate enhancement if wanted. Re-confirmed during the 2026-06-10 security review pass.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Severity: Low — abuse / availability DoS.
Problem
A single
recurrence=weeklybooking reserves every unbooked slot in the recurrence group with no cap (src/Booking/BookingEndpoint.php:144-149).Impact
One student can lock up an instructor's entire recurring schedule in a single request.
Fix
Cap the number of occurrences a single weekly booking may reserve (configurable per offering, or a sane default), and/or require the offering's
allow_weeklyflag to be set.Verified resolved on main (
061d09e, PR #38): BookingEndpoint::MAX_WEEKLY_OCCURRENCES caps a single weekly booking at 12 occurrences, so one request can no longer lock an instructor's entire recurring series. Note the optional second half of the suggested fix (enforcing the offering's allow_weekly flag at booking time) is not implemented — the cap alone addresses the lockup abuse described here; flag enforcement can be a separate enhancement if wanted. Re-confirmed during the 2026-06-10 security review pass.