Description
The report.get procedure in packages/trpc/src/routers/report.ts accepted only a reportId and returned getReportById(reportId) directly. The enforceAccess middleware in packages/trpc/src/trpc.ts evaluates membership only when the input carries a projectId or organizationId key, so an input consisting of a reportId alone passed through unchecked, and getReportById in packages/db/src/services/reports.service.ts performs a findUnique on the report id with no project scoping. Any authenticated user could therefore read the full configuration of any saved report on the instance, including the owning projectId, event series, filters, breakdowns and formulas, by supplying its identifier. The adjacent update, delete and duplicate procedures resolve the report first and check getProjectAccess against the report's own projectId, so the omission was specific to this procedure.
Published: 2026-08-21
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized data exposure (access control bypass)
Action: Apply patch
AI Analysis

Impact

The report.get procedure in OpenPanel accepts only a report identifier and immediately returns the report details by calling getReportById without verifying the requesting user's membership in the report’s owning project. The enforceAccess middleware performs its checks only when the request payload contains a project or organization identifier, so a request comprised solely of a reportId bypasses access control. As a result, any authenticated user can read the full configuration of any saved report—including the owning project, event series, filters, breakdowns, and formulas—by simply supplying the report’s identifier.

Affected Systems

The flaw resides in the OpenPanel application developed by Openpanel-dev. No specific product version range is provided, but any instance of OpenPanel that incorporates the affected code paths in packages/trpc/src/routers/report.ts and packages/db/src/services/reports.service.ts is potentially vulnerable.

Risk and Exploitability

The CVSS score of 7.1 indicates a high‑impact vulnerability. Exacerbated by the lack of project scoping, the flaw allows an authenticated attacker to exfiltrate sensitive configuration data. EPSS data is not available, and the vulnerability is not currently listed in the CISA KEV catalog, suggesting no confirmed exploitation yet. The likely attack vector is through legitimate API calls by any user with valid credentials, which can be executed remotely.

Generated by OpenCVE AI on August 21, 2026 at 12:57 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the official OpenPanel update that adds project scoping checks to the report.get API, fixing the CWE‑639 access control flaw.
  • If a patch is not yet available, lock down the report.get endpoint by restricting API access to users with explicit project membership and monitor for unauthorized retrievals.
  • Implement custom middleware to validate the user’s membership against the report’s project before returning data, ensuring the CWE‑639 condition is not violated.

Generated by OpenCVE AI on August 21, 2026 at 12:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Metrics ssvc

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


Fri, 21 Aug 2026 13:00:00 +0000

Type Values Removed Values Added
First Time appeared Openpanel
Openpanel openpanel
Vendors & Products Openpanel
Openpanel openpanel

Fri, 21 Aug 2026 11:15:00 +0000

Type Values Removed Values Added
Description The report.get procedure in packages/trpc/src/routers/report.ts accepted only a reportId and returned getReportById(reportId) directly. The enforceAccess middleware in packages/trpc/src/trpc.ts evaluates membership only when the input carries a projectId or organizationId key, so an input consisting of a reportId alone passed through unchecked, and getReportById in packages/db/src/services/reports.service.ts performs a findUnique on the report id with no project scoping. Any authenticated user could therefore read the full configuration of any saved report on the instance, including the owning projectId, event series, filters, breakdowns and formulas, by supplying its identifier. The adjacent update, delete and duplicate procedures resolve the report first and check getProjectAccess against the report's own projectId, so the omission was specific to this procedure.
Title OpenPanel report.get Returns Any Report by Identifier Without Checking Project Access
Weaknesses CWE-639
References
Metrics cvssV3_1

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

cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Openpanel Openpanel
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-21T17:31:03.513Z

Reserved: 2026-08-21T10:46:45.717Z

Link: CVE-2026-77768

cve-icon Vulnrichment

Updated: 2026-08-21T17:30:39.434Z

cve-icon NVD

Status : Received

Published: 2026-08-21T11:17:07.283

Modified: 2026-08-21T18:16:52.240

Link: CVE-2026-77768

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T13:15:05Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key