Severity by source
AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H
PR:H reflects mandatory TENANT_ADMIN role; AC:H reflects the need to reach postgres:5432 as a second step; S:C captures cross-tenant database impact beyond the calling tenant's scope.
Primary rating from Vendor (github).
CVSS VectorVendor: github
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H
Lifecycle Timeline
4DescriptionCVE.org
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.
AnalysisAI
Credential exfiltration via the tenant API in OpenReception appointment-booking-software prior to v1.0.2 allows any authenticated TENANT_ADMIN to retrieve the full PostgreSQL connection string - including plaintext password - for the shared database instance. In default docker-compose.prod.yml deployments, those credentials belong to the postgres superuser (rolsuper=true), granting the attacker read-write access to every tenant's database, all GLOBAL_ADMIN password hashes and session records, and superuser-level PostgreSQL functions (pg_read_server_files, COPY FROM PROGRAM) usable for container-level escalation. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | The attacker must hold a valid TENANT_ADMIN authentication token for any tenant on the target instance - this role is assigned during tenant onboarding and may be self-provisioned depending on operator configuration. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The CVSS 8.0 vector (AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H) correctly captures the two-stage nature of the attack: PR:H reflects the requirement for a TENANT_ADMIN account, and AC:H reflects the additional prerequisite of reaching postgres:5432 to monetize the disclosed credential. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade to OpenReception appointment-booking-software version 1.0.2, which resolves the issue by replacing the full tenantData object serialization with an explicit field allowlist that excludes databaseUrl. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Although no public exploit identified at time of analysis, assume insider exploitation risk is high given ease of access by TENANT_ADMIN users. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
A vulnerability in the FinanceChatLlamaPack of the run-llama/llama_index repository, versions up to v0.12.3, allows for
Same weakness CWE-200 – Information Exposure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54217