Программное обеспечение OpenReception для записи на прием предоставляет платформу для записи на прием со сквозным шифрованием. До версии 1.0.5 неаутентифицированная конечная точка `/api/tenants/{id}/schedule` возвращала каждый неархивированный канал для клиента независимо от флага `isPublic` канала. Каналы с пометкой `isPublic = false` предназначены для того, чтобы быть невидимыми для публичных вызывающих абонентов; информационная панель создает их намеренно, чтобы скрыть услуги, предназначенные только для внутреннего использования, из пользовательского интерфейса бронирования пациентов.
Конечная точка расписания полностью игнорирует этот флаг и раскрывает имена каналов, описания, идентификаторы, ассоциации агентов, состояние паузы, требования к подтверждению и вычисленную доступность слотов для запрошенного диапазона дат. Асимметрия между `addAppointmentToTunnel` (который обеспечивает `eq(channel.isPublic, true)`) и конечной точкой расписания (которая этого не делает) подтверждает замысел проекта: частные каналы существуют как реальная граница доступа в потоке резервирования, а не в раскрытии расписания. Версия 1.0.5 исправляет проблему.
Показать оригинальное описание (EN)
OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.5, the unauthenticated `/api/tenants/{id}/schedule` endpoint returns every non-archived channel for a tenant regardless of the channel's `isPublic` flag. Channels marked `isPublic = false` are intended to be invisible to public callers; the dashboard creates them deliberately to hide internal-only services from the patient booking UI. The schedule endpoint ignores the flag entirely and discloses channel names, descriptions, IDs, agent associations, pause status, confirmation requirements, and computed slot availability for the requested date range. The asymmetry between `addAppointmentToTunnel` (which enforces `eq(channel.isPublic, true)`) and the schedule endpoint (which does not) confirms the design intent: private channels exist as a real access boundary in the booking flow, just not in the schedule disclosure. Version 1.0.5 patches the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1