CVE-2026-48087

OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.2, the registration handler at `POST /api/auth/register/{userId}` validates the relationship between the WebAuthn challenge and the registration cookie's email but never validates that the `userId` in the URL belongs to that email. An unauthenticated attacker requests a challenge for their own email, generates a registration response with their own authenticator, and submits it against any victim user's URL. The challenge-vs-cookie email match passes, the WebAuthn ceremony validates, and `addPasskey` writes the attacker's credential into the victim's `user_passkey` rows. The next victim-email login accepts a passkey assertion from the attacker's authenticator and issues a session as the victim. User IDs are not strictly secret on this platform, but the exact set of exposure surfaces should be assessed by the maintainers. Staff-list endpoints return user IDs to authenticated tenant members per the route signature; live verification of all exposure surfaces (whether user IDs leak through any unauthenticated route, through invite-confirmation URLs, or through other administrative views) is part of the pending live PoC. Where the attacker knows the victim's email and userId, the analysis below becomes account takeover. Version 1.0.2 fixes the issue.
Configurations

No configuration.

History

23 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) El software de reserva de citas de OpenReception proporciona una plataforma de reserva de citas cifrada de extremo a extremo. Antes de la versión 1.0.2, el gestor de registro en “POST /api/auth/register/{userId}” valida la relación entre el desafío WebAuthn y el correo electrónico de la cookie de registro, pero nunca valida que el “userId” en la URL pertenezca a ese correo electrónico. Un atacante no autenticado solicita un desafío para su propio correo electrónico, genera una respuesta de registro con su propio autenticador y lo envía contra la URL de cualquier usuario víctima. La coincidencia de correo electrónico entre el desafío y la cookie pasa, la ceremonia WebAuthn se valida y “addPasskey” escribe la credencial del atacante en las filas “user_passkey” de la víctima. El siguiente inicio de sesión con el correo electrónico de la víctima acepta una aserción de clave de acceso del autenticador del atacante y emite una sesión como la víctima. Los ID de usuario no son estrictamente secretos en esta plataforma, pero el conjunto exacto de superficies de exposición debe ser evaluado por los mantenedores. Los endpoints de lista de personal devuelven ID de usuario a los miembros de inquilinos autenticados según la firma de la ruta; la verificación en vivo de todas las superficies de exposición (ya sea que los ID de usuario se filtren a través de cualquier ruta no autenticada, a través de URL de confirmación de invitación o a través de otras vistas administrativas) es parte de la PoC en vivo pendiente. Cuando el atacante conoce el correo electrónico y el userId de la víctima, el análisis a continuación se convierte en una toma de control de cuenta. La versión 1.0.2 corrige el problema.

Information

Published : 2026-08-06 22:17

Updated : 2026-10-23 21:10


NVD link : CVE-2026-48087

Mitre link : CVE-2026-48087

CVE.ORG link : CVE-2026-48087


JSON object : View

Products Affected

No product.

CWE
CWE-287

Improper Authentication