Skip to main content

OpenReception EUVDEUVD-2026-54168

| CVE-2026-48086 CRITICAL
Improper Privilege Management (CWE-269)
2026-08-06 security-advisories@github.com
9.9
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as TENANT_ADMIN
  2. Delivery
    Send PUT to staff role endpoint
  3. Exploit
    Set role to GLOBAL_ADMIN
  4. Execution
    Re-login to refresh JWT
  5. Impact
    Access all tenants platform-wide

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account holding the TENANT_ADMIN role on the target OpenReception instance (any tenant on the hosted service). The concrete prerequisite is access to the staff role-update endpoint PUT /api/tenants/[id]/staff/[staffId] with a request body setting role to the GLOBAL_ADMIN enum value; no non-default configuration, feature flag, or user interaction is needed, and the target can be the attacker's own account or any colleague within the same tenant. Limiting factors: the attacker must already possess valid tenant-admin credentials (not unauthenticated), the elevated role only takes effect after re-login because the role is carried in the JWT, and the cross-tenant impact is only realized on multi-tenant (hosted) deployments - on a single-tenant self-hosted install it is a lower-impact local privilege escalation. Note that plaintext appointment contents remain protected by the E2E model unless this is chained with the staff-crypto poisoning issue (V-4) or staff-passkey hijacking (V-1).

Impact

The CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H yields 9.9 (Critical), and the metrics are internally consistent with the description: network-reachable API (AV:N), a single low-complexity request (AC:L), only tenant-admin privileges required (PR:L), no victim interaction (UI:N), and a genuine scope change (S:C) because a tenant-scoped identity crosses into other tenants' security domains. The confidentiality/integrity/availability impacts are all High and well-justified given full platform administrative control. EPSS and KEV data were not provided; there is no evidence of active exploitation, so this should be treated as a high-priority latent risk rather than a confirmed in-the-wild threat. The main tempering factor is that exploitation requires an existing valid TENANT_ADMIN account - this is not an unauthenticated internet attack - but on the hosted multi-tenant service any single paying customer's admin becomes the adversary, which is a severe trust-boundary break. On single-tenant self-hosted installs the scope-change premium does not fully apply, lowering real-world impact to a local-tenant privilege escalation.

Exploit ScenarioDerived

A legitimate customer signs up for a tenant on the hosted OpenReception service and receives a normal TENANT_ADMIN account. They send one PUT request to their own tenant's staff endpoint setting their role (or a disposable collaborator's role) to GLOBAL_ADMIN, which passes schema validation and is accepted. After logging out and back in, their JWT now carries GLOBAL_ADMIN, granting full administrative control over every other tenant's configuration, users, staff records, and tenant lifecycle. No public exploit code is required - the request is a trivial role-field change.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 06, 2026

Privilege escalation in OpenReception's appointment booking platform (versions prior to 1.0.2) lets any TENANT_ADMIN promote an account to platform-wide GLOBAL_ADMIN with a single PUT request to the staff role-update endpoint. Because no policy check enforces that only an existing GLOBAL_ADMIN may grant that role, schema validation alone acts as the authorization gate, and after re-login the attacker's JWT carries platform-wide control over every tenant. No public exploit identified at time of analysis, but the fix is a one-line authorization guard, making the flaw trivially reproducible for anyone reading the GHSA advisory or patch commit.

RemediationAI

Vendor-released patch: upgrade to OpenReception 1.0.2, which adds an explicit authorization check rejecting any attempt to assign the GLOBAL_ADMIN role through the staff role-update endpoint (commit 8525d35a41c31078d9f01c62e9687e653cf1a494; advisory GHSA-5qfr-7q4g-3469). If you cannot upgrade immediately, apply the equivalent server-side guard yourself in src/routes/api/tenants/[id]/staff/[staffId]/+server.ts by rejecting PUT requests where role === "GLOBAL_ADMIN" unless the caller is already a GLOBAL_ADMIN - the trade-off is a manual code change that must be re-applied on redeploy. As a compensating control, audit the current staff/role table for any unexpected GLOBAL_ADMIN accounts and for tenant-admin-initiated promotions of colleague accounts (the handler also allows promoting other staff, which can leave the attacker's own audit trail clean), and restrict or monitor access to the tenant staff-management API. Revoke and re-issue JWTs and force re-login after remediation so any already-elevated tokens lose effect.

Affected VersionsENISA

appointment-booking-software < 1.0.2

Affected Packages

euvd appointment_booking_software fix: 1.0.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

OpenReception is a SvelteKit-based, end-to-end encrypted, multi-tenant appointment booking service. The vulnerable code lives in the staff role-update handler at src/routes/api/tenants/[id]/staff/[staffId]/+server.ts (the PUT handler). The role field is a TypeScript/schema enum that includes GLOBAL_ADMIN, and the handler treated passing enum validation as sufficient authorization - a textbook CWE-269 (Improper Privilege Management) failure where a data-shape check is mistaken for an access-control decision. Roles are propagated through JWTs issued at login, so an elevated role only takes full effect after the attacker re-authenticates. The fix (commit 8525d35a41c31078d9f01c62e9687e653cf1a494) adds an explicit AuthorizationError thrown whenever updateData.role === "GLOBAL_ADMIN", blocking assignment of that role through this endpoint entirely.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

Network API reachable with one low-complexity request; only tenant-admin privileges needed (PR:L), no user interaction, and crossing into other tenants' domains justifies S:C with full C/I/A impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Aug 06, 2026 - 23:03 EUVD
CVE Published
Aug 06, 2026 - 22:17 cve.org
CRITICAL 9.9

DescriptionCVE.org

OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.2, a TENANT_ADMIN promotes themselves to platform-wide GLOBAL_ADMIN through a single PUT request. The role-update handler accepts the GLOBAL_ADMIN enum value from any tenant admin updating their own tenant's staff. No policy check enforces that "only an existing GLOBAL_ADMIN may grant GLOBAL_ADMIN", so the schema validation IS the authorization decision. After re-login, the JWT contains the new role and the formerly-tenant-scoped admin reaches every other tenant on the platform. On the hosted OpenReception service this is a scope-changed escalation: a single customer-side tenant administrator gains full platform-wide administrative control over all other tenants' configuration, users, staff records, operational metadata, and tenant lifecycle. Plaintext appointment contents remain subject to the E2E model unless chained with the staff-crypto poisoning issue (V-4) or with staff-passkey hijacking (V-1). On a single-tenant self-hosted deployment it is still a privilege escalation because TENANT_ADMIN should not be able to create new tenants, modify global configuration, or manage other administrators. The same handler also accepts updates targeted at any colleague within the tenant. A tenant admin can promote a separate collaborator account instead of themselves, leaving their own audit trail clean while the platform-wide breach happens through a separate identity. Version 1.0.2 fixes the issue.

Executive ViewAI

Why It Matters

OpenReception's appointment booking platform (versions prior to 1.0.2) contains a critical privilege escalation flaw that allows tenant administrators to unilaterally promote their own accounts to platform-wide administrative control through a single API request. This threatens all organizations using affected versions by exposing complete system compromise and unrestricted access to all tenant booking data, customer information, and platform configurations by a single compromised admin account.

Business Impact: Severe
Compensating Controls

Immediately restrict TENANT_ADMIN role to only essential personnel with documented business justification; implement network access controls to limit API access to role-update endpoints from trusted administrative networks only; enable comprehensive audit logging and real-time alerting on all role modification events; require multi-factor authentication for any account with administrative access; establish weekly audit reports of role assignments and approval chains; consider temporarily disabling TENANT_ADMIN capabilities except for emergency break-glass access until vendor provides an authorized patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Low
niche open-source booking product, limited enterprise deployment footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy