Description
OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.2, the `GET /api/tenants/{id}` endpoint returns the full tenant record to any authenticated `TENANT_ADMIN` of that tenant, including the `databaseUrl` field. This field contains the live PostgreSQL connection string the application uses to connect to that tenant's database. In the tested official `docker-compose.prod.yml` deployment, the connection string contained the user `postgres` with `rolsuper=true` and the plaintext password from `secrets/postgres_password.txt`. Operators who configure a non-superuser PostgreSQL user via `secrets/postgres_user.txt` would expose a less privileged credential, but the disclosure of the connection string itself is independent of that choice. The same credential applies to every database managed by that PostgreSQL instance: the central `appointment_booking` database, every per-tenant database (one per tenant), and the postgres administrative database. A `TENANT_ADMIN` of one tenant who can reach `postgres:5432` (directly via internal network, indirectly via any SSRF, RCE, or file-read in the application) can read every other tenant's appointment ciphertexts, key shares, and metadata; read the central user table, including all `GLOBAL_ADMIN` accounts, password hashes, and session records; modify or delete any data in any tenant database; and/or i a superuser-scoped deployment: use PostgreSQL's `pg_read_server_files`, `COPY ... FROM PROGRAM`, and `CREATE EXTENSION` for further escalation inside the database container. This breaks the per-tenant database isolation that is otherwise the primary cross-tenant control in the application. The application code carefully scopes most queries to the calling tenant's database, but those scopings are irrelevant once the attacker holds the credentials that bypass the application entirely. Version 1.0.2 fixes the issue.
Published: 2026-08-06
Score: 8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

OpenReception’s appointment booking software, prior to version 1.0.2, inadvertently exposed a full PostgreSQL connection string via the tenant detail endpoint. The published URL contains a superuser (postgres) credential and a plaintext password, allowing an authenticated tenant administrator to connect directly to the PostgreSQL instance. This enables the attacker to read all tenant databases, central user tables, and administrative data, as well as to modify or delete data across all tenants. The breach not only compromises confidentiality but also integrity, as the exposed credentials let an attacker fully compromise tenant isolation and may be leveraged for further database‑level escalation if the deployment runs with superuser-scoped PostgreSQL users.

Affected Systems

The affected product is OpenReception’s appointment booking software, version older than 1.0.2. All vendors using the official docker‑compose.prod.yml deployment that includes a PostgreSQL superuser run directly through the application’s data layer are susceptible. The vulnerability is present in the GET /api/tenants/{id} endpoint for any authenticated TENANT_ADMIN of any tenant.

Risk and Exploitability

The CVSS score of 8 reflects a high severity for potential exploitation. While the EPSS score is not available, the vulnerability is not listed in CISA KEV, suggesting it has not yet been widely exploited. The likely attack vector requires an authenticated TENANT_ADMIN who can reach the internal PostgreSQL port, which may be achieved through normal application access or via indirect SSRF, RCE, or file‑read primitives that expose the container network. Once the attacker obtains the superuser credentials, they can bypass the application’s tenant isolation and gain full control over all tenant data and administrative settings.

Generated by OpenCVE AI on August 7, 2026 at 00:37 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade OpenReception to version 1.0.2 or later to eliminate the exposed databaseUrl field
  • If upgrading immediately is not possible, configure the application to use a dedicated non‑superuser PostgreSQL account in the secrets and ensure those credentials are not included in any API responses
  • Restrict network access to the PostgreSQL service so that only the application containers can reach the database port, preventing remote tenant administrators from connecting directly

Generated by OpenCVE AI on August 7, 2026 at 00:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 07 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 07 Aug 2026 10:30:00 +0000

Type Values Removed Values Added
First Time appeared Open-reception
Open-reception appointment-booking-software
Vendors & Products Open-reception
Open-reception appointment-booking-software

Thu, 06 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
Description OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.2, the `GET /api/tenants/{id}` endpoint returns the full tenant record to any authenticated `TENANT_ADMIN` of that tenant, including the `databaseUrl` field. This field contains the live PostgreSQL connection string the application uses to connect to that tenant's database. In the tested official `docker-compose.prod.yml` deployment, the connection string contained the user `postgres` with `rolsuper=true` and the plaintext password from `secrets/postgres_password.txt`. Operators who configure a non-superuser PostgreSQL user via `secrets/postgres_user.txt` would expose a less privileged credential, but the disclosure of the connection string itself is independent of that choice. The same credential applies to every database managed by that PostgreSQL instance: the central `appointment_booking` database, every per-tenant database (one per tenant), and the postgres administrative database. A `TENANT_ADMIN` of one tenant who can reach `postgres:5432` (directly via internal network, indirectly via any SSRF, RCE, or file-read in the application) can read every other tenant's appointment ciphertexts, key shares, and metadata; read the central user table, including all `GLOBAL_ADMIN` accounts, password hashes, and session records; modify or delete any data in any tenant database; and/or i a superuser-scoped deployment: use PostgreSQL's `pg_read_server_files`, `COPY ... FROM PROGRAM`, and `CREATE EXTENSION` for further escalation inside the database container. This breaks the per-tenant database isolation that is otherwise the primary cross-tenant control in the application. The application code carefully scopes most queries to the calling tenant's database, but those scopings are irrelevant once the attacker holds the credentials that bypass the application entirely. Version 1.0.2 fixes the issue.
Title OpenReception's tenant detail endpoint discloses live PostgreSQL connection string, superuser-scoped in the tested official deployment
Weaknesses CWE-200
References
Metrics cvssV3_1

{'score': 8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H'}


Subscriptions

Open-reception Appointment-booking-software
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-07T17:42:01.697Z

Reserved: 2026-05-20T18:25:25.709Z

Link: CVE-2026-48080

cve-icon Vulnrichment

Updated: 2026-08-07T17:41:56.529Z

cve-icon NVD

Status : Received

Published: 2026-08-06T22:17:10.703

Modified: 2026-08-07T18:17:17.957

Link: CVE-2026-48080

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-07T09:59:12Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor