Description
The report.list procedure in packages/trpc/src/routers/report.ts accepted a projectId and a dashboardId and returned getReportsByDashboardId(dashboardId). The enforceAccess middleware in packages/trpc/src/trpc.ts verified membership for the supplied projectId, but nothing verified that the supplied dashboardId belonged to that project, and getReportsByDashboardId in packages/db/src/services/reports.service.ts selects reports by dashboardId alone with no project scoping. An authenticated user could therefore pair a projectId from their own organization, which satisfies the middleware, with a dashboardId belonging to another organization and receive every report in that dashboard. A correctly scoped helper, listReportsCore, already existed in the same service file and resolves the dashboard through getDashboardById(dashboardId, projectId) before returning reports, but the router did not use it.
Published: 2026-08-21
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Exposes reports across organization boundaries
Action: Patch Immediately
AI Analysis

Impact

The report.list procedure in OpenPanel accepts a project id and a dashboard id, then queries all reports that belong to that dashboard without verifying the dashboard belongs to the supplied project. This missing validation allows an authenticated user to supply a dashboard id that belongs to another organization while providing a project id that the user is a member of, causing the service to return every report from the other organization’s dashboard. As a result, confidential reports can be accessed by individuals who do not belong to the target organization, constituting a data disclosure across organization boundaries.

Affected Systems

This vulnerability affects the OpenPanel project (Openpanel‑dev:openpanel) in all versions that have not applied the fix. The code paths involved are located in packages/trpc/src/routers/report.ts and packages/db/src/services/reports.service.ts. No specific version range is listed, so any deployment that has not been updated to a corrected version is potentially exposed.

Risk and Exploitability

The CVSS score of 7.1 indicates a moderate severity with potential for significant data loss. The EPSS score is not available, so the probability of public exploitation is unknown; however, the absence of a CPES or network reachability notes suggests the vulnerability requires a user who can authenticate to the system. The attacker must possess valid credentials and must know both project and dashboard identifiers, which may be discoverable via existing API or UI. The weakness is classified as CWE-639 (Authorization Bypass Through User-Controlled Search Condition). As the vulnerability enables unauthorized access to sensitive data, organizations should treat it as a priority for remediation.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade OpenPanel to the latest stable release from the Openpanel‑dev repository, which replaces the report.list implementation with a call to listReportsCore that verifies the dashboard belongs to the supplied project.
  • If an immediate upgrade is not possible, patch the report router to call listReportsCore or insert a check that the requested dashboard id resolves to a dashboard owned by the validated project id before querying reports.
  • Enhance audit logging to track when report.list is invoked with project and dashboard identifiers, and alert on cross‑organization access patterns that deviate from normal user activity.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 26 Aug 2026 19: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.list procedure in packages/trpc/src/routers/report.ts accepted a projectId and a dashboardId and returned getReportsByDashboardId(dashboardId). The enforceAccess middleware in packages/trpc/src/trpc.ts verified membership for the supplied projectId, but nothing verified that the supplied dashboardId belonged to that project, and getReportsByDashboardId in packages/db/src/services/reports.service.ts selects reports by dashboardId alone with no project scoping. An authenticated user could therefore pair a projectId from their own organization, which satisfies the middleware, with a dashboardId belonging to another organization and receive every report in that dashboard. A correctly scoped helper, listReportsCore, already existed in the same service file and resolves the dashboard through getDashboardById(dashboardId, projectId) before returning reports, but the router did not use it.
Title OpenPanel report.list Queries Reports by an Unverified dashboardId, Crossing Organization Boundaries
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-26T17:23:49.786Z

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

Link: CVE-2026-77769

cve-icon Vulnrichment

Updated: 2026-08-26T17:23:36.935Z

cve-icon NVD

Status : Received

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

Modified: 2026-08-26T18:17:02.547

Link: CVE-2026-77769

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T12:45:04Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key