CVE-2026-48076 in appointment-booking-software
Tóm tắt
Bởi VulDB • 08/08/2026
Phần mềm đặt lịch hẹn của OpenReception cung cấp một nền tảng đặt lịch được mã hóa đầu cuối (end-to-end). Quy trình đặt lịch cho khách hàng mới trong các phiên bản 1.0.1 trở về trước bao gồm ba lệnh gọi: `bootstrap-challenge` (trả về thách thức Proof-of-Work (PoW) 16-bit với độ khó `difficulty=4`, yêu cầu số không thập lục phân dẫn đầu), `bootstrap-verify` (xác thực PoW và cấp mã thông báo truy cập đặt lịch Bearer), và `create-new-client` (tiêu thụ mã thông báo, tạo đường hầm và cuộc hẹn đầu tiên). Mã thông báo được liên kết chính xác với `tenantId`, `tunnelId`, `clientPublicKey` và `emailHash`, nhưng không bao giờ được liên kết với `channelId`. Sơ đồ yêu cầu của lệnh gọi `bootstrap-challenge` thậm chí còn không chấp nhận tham số `channelId`, và phần tải trọng (payload) của mã thông báo đã cấp cũng không chứa thông tin về kênh. Độc lập với điều đó, hàm dịch vụ `createNewClientWithAppointment` chỉ kiểm tra `channel.archived = false`. Kiểm tra `channel.isPublic` bảo vệ chức năng `addAppointmentToTunnel` bị thiếu trong quy trình tạo khách hàng mới. Sự kết hợp này có nghĩa là: kẻ tấn công hoàn thành quy trình bootstrap một cách bình thường (PoW 16-bit, hoàn tất trong thời gian rất ngắn dưới một giây trên phần cứng phổ thông, không giới hạn tốc độ ngoài bộ lưu trữ throttle), nhận được mã thông báo truy cập đặt lịch hợp lệ, sau đó gửi tải trọng `create-new-client` với tham số `channelId` trỏ đến một kênh riêng tư (`isPublic = false`). Cuộc hẹn sẽ có trạng thái `CONFIRMED` nếu kênh mục tiêu có thiết lập `requiresConfirmation = false` (mặc định), ngược lại là `NEW`. Giao diện người dùng dành cho bệnh nhân không liệt kê các kênh riêng tư trong trình chọn của nó (`/api/public/channels` lọc chính xác `isPublic = true`), do đó ID kênh phải được thu thập ngoài băng thông (out of band). Phát hiện đi kèm V-10 (điểm cuối lịch trình tiết lộ các kênh riêng tư) cung cấp đúng điều này: một lệnh GET không xác thực duy nhất sẽ hiển thị mọi ID kênh riêng tư cho bất kỳ tenant nào. Kết hợp giữa V-10 và V-11 khiến các kênh riêng tư hoàn toàn có thể tiếp cận được đối với kẻ tấn công ẩn danh. Tính đến thời điểm xuất bản, chưa có phiên bản vá nào được biết đến là khả dụng.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.