CVE-2026-54460 in appointment-booking-software
Zusammenfassung
von VulDB • 18.09.2026
Die Buchungssoftware von OpenReception bietet eine Ende-zu-Ende-verschlüsselte Plattform zur Terminbuchung. Vor Version 1.1.1 akzeptiert der Endpunkt POST /api/auth/passkeys einen request-body mit einer userId und einem vom Angreifer bereitgestellten Passkey, ohne dass eine authentifizierte Sitzung erforderlich ist; zudem wird WebAuthnService.verifyRegistration nicht aufgerufen und die Registrierung wird nicht an locals.user.id gebunden. Ein nicht authentifizierter Angreifer, der die öffentliche Mandanten-ID (tenant ID) sowie die E-Mail-Adresse des Zielmitarbeiters kennt, kann den öffentlichen Buchungs-Bootstrap sowie GET /api/tenants/[id]/appointments/staff-public-keys nutzen, um potenzielle userId-Werte zu ermitteln. Der Angreifer veranlasst zunächst UserService.addAdditionalPasskey dazu, einen kontrollierten öffentlichen Schlüssel für eine candidate userId zu speichern, und versucht anschließend die Anmeldung mit der Ziel-E-Mail-Adresse; die Login-Prüfung vergleicht verificationResult.userId mit dem über die E-Mail aufgelösten Konto und offenbart dadurch, ob das injizierte Anmeldecredential (Credential) zu diesem Zielkonto gehört. Durch wiederholtes Ausführen dieser Sequenz aus Injektion vor der Anmeldung wird die passende userId identifiziert; der normale Login-Endpunkt akzeptiert dann die Assertion des Angreifers für den gespeicherten Schlüssel und erstellt eine STAFF-Sitzung. Diese Sitzung kann Mandantendaten offenlegen und TENANT_ADMIN-Kennungen (Identifikatoren) aufdecken, was zu einer weiteren Übernahme führen kann; GLOBAL_ADMIN-Accounts sind über diesen mandantenbezogenen Pfad nicht erreichbar. Ein gehijackter TENANT_ADMIN kann Mandantenressourcen sowie Schlüsselanteile (key shares) ändern oder löschen, wodurch Termindaten möglicherweise dauerhaft unentschlüsselbar werden und die Buchungsdienste offline geschaltet werden können. Dieses Problem wurde in Version 1.1.1 behoben.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.