---
id: CVE-2026-77768
title: >-
  The report.get procedure in packages/trpc/src/routers/report.ts accepted only
  a reportId and returned getReportById(reportId) directly
summary: >-
  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 ca…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-639
published: '2026-08-21'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T17:17:41.327'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-77768'
references:
  - url: 'https://github.com/Openpanel-dev/openpanel'
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/Openpanel-dev/openpanel/blob/e8a0602cda5a4d4b463f11d298a1b078c446bf33/packages/trpc/src/routers/report.ts
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/Openpanel-dev/openpanel/commit/0a51b6805eed0b3da8376175acd5fa3d26819cb6
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/Openpanel-dev/openpanel/security/advisories/GHSA-9x7c-f87x-2243
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/openpanel-report-get-returns-any-report-by-identifier-without-checking-project-access
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/Openpanel-dev/openpanel/security/advisories/GHSA-9x7c-f87x-2243
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
epss: 0.00309
epssPercentile: 0.21167
ingestedAt: '2026-09-23T17:28:14.800Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
