Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover OpenPanel instance
-
ExploitGuess slug-based project ID
-
ExecutionPOST unauthenticated reference.getChartReferences call
-
ImpactDump cross-tenant annotation timeline
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | No special conditions - remote unauthenticated exploitation against default configurations of OpenPanel, requiring only network reachability to the tRPC endpoint. The only practical prerequisite is knowing or guessing a target's slug-based projectId, which is derived from the project name (id.service.ts) and is human-guessable for the first project of a given name. Limiting factors: impact is confined to read-only disclosure of annotation metadata (title, description, date) for projects whose IDs the attacker can guess or enumerate - no write access, no credential or full-dataset exposure - and instances patched to 3.0.0 enforce project-access or unlocked-public-share checks. |
| Impact | Signals point consistently to a genuine but low-to-moderate priority issue rather than an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, score 6.9) describes trivially easy remote exploitation - no authentication, no user interaction, low attack complexity - which the source-code evidence fully corroborates: getChartReferences is a publicProcedure whose handler never reads ctx.session or calls a project-access/share gate. However, the impact metrics temper this sharply: VC:L with VI:N/VA:N/SC:N means confidentiality-only disclosure of a narrow data class (annotation titles, descriptions, and dates - release notes and deploy markers), not credentials, integrity, or availability. EPSS is low at 0.25% (16th percentile), it is NOT on CISA KEV, and the vuln.today decision label is 'this_month' (not act_now/emergency), all of which align with the limited-sensitivity confidentiality impact. The tension to flag explicitly: ease of exploitation is high (anonymous, slug-guessable project IDs per id.service.ts) while the value of the leaked data is low, so this is a real, easily-abused cross-tenant leak but one whose business impact depends entirely on how sensitive a given tenant's annotation text is. Exploitation status: a public PoC reference exists in the GHSA advisory; it is not verified as working exploit code, and there is no confirmed active exploitation. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a single POST to /trpc/reference.getChartReferences with no session cookie and a guessed slug-based projectId (e.g. 'acme'), receiving a JSON array of that tenant's annotation {title, description, date} entries. Because project IDs are derived from slug(name) with a random suffix only on collision, the first project of a given name has a human-guessable ID, enabling cross-tenant enumeration. A public PoC reference exists in the advisory; it is not verified as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unauthenticated cross-tenant disclosure in OpenPanel before 3.0.0 allows any remote attacker to read other tenants' project annotations - release notes, deploy markers and internal event notes - by calling the public reference.getChartReferences tRPC procedure with a guessed slug-based projectId. The handler never reads the session and performs no project-access or share-token check, so it returns title, description and date rows for any project whose ID the attacker can guess; impact is confidentiality-only (CVSS 6.9, assessed as CVSS:3.1 C:L with no integrity or availability effect). EPSS is 0.25% (16th percentile) and there is no CISA KEV listing, but the vendor advisory documents a public proof-of-concept request and the issue is fixed in 3.0.0.
RemediationAI
Vendor-released patch: upgrade OpenPanel to 3.0.0 or later, which enforces the in-handler authorization check on reference.getChartReferences (member must pass getProjectAccess, anonymous viewer must hold an unlocked public share) as shown in commit 7b88523798dcd2dcba53c39ca00f8a8c448377c3; operators on a rolling deploy who cannot move to the tagged release should cherry-pick that commit, since the vulnerable publicProcedure plus unguarded findMany is the whole defect. Advisory details are at https://github.com/Openpanel-dev/openpanel/security/advisories/GHSA-c98x-mph7-r6vp (with the companion GHSA-vrrm-p9p4-2gfg). If upgrading must be deferred, the interim mitigation is to deny POST requests to the /trpc/reference.getChartReferences route at the reverse proxy or WAF and to treat project annotations as potentially already disclosed; the trade-off is that legitimately shared dashboards lose their chart annotation overlays until the fix is applied, and blocking by route path is defeated if the deployment rewrites or batches tRPC calls. Because project IDs are slug-derived and largely guessable, rotating or randomizing project identifiers offers only partial protection and does not close the missing check. There is no KEV-listed active exploitation and EPSS is low (0.25%), so remediation can be scheduled in the normal monthly patch cycle per the this_month priority, but the unauthenticated nature of the read means exposure to the internet should be reviewed before then.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenPanel exposes its API through tRPC, where procedure type is the authorization boundary: publicProcedure runs only the logger and session-scope middleware (populating req.session or an EMPTY_SESSION, never rejecting anonymous callers), while protectedProcedure additionally runs enforceAccess. In the affected code (packages/trpc/src/routers/reference.ts, getChartReferences around lines 101-122) the procedure was declared publicProcedure and its handler went straight to db.reference.findMany({ where: { projectId, date range } }) without consulting ctx.session.userId, getProjectAccess, or any share gate - the neighbouring getReferences (:11-35) is a protectedProcedure that calls getProjectAccess and throws 403, and create/update/delete all require project access, which confirms annotations are access-controlled data and the public read is the anomaly. Mapping to CWE-639 (authorization bypass through user-controlled key) and CWE-862 (missing authorization), the user-controlled key is the projectId, which is generated as slug(project name) in id.service.ts with a random suffix only on collision, so the first project named e.g. "acme" has the human-guessable id "acme". The procedure is intentionally public so that a share page can draw annotations over its charts, meaning the in-handler guard was the only barrier; the fix (commit 7b88523798dcd2dcba53c39ca00f8a8c448377c3) keeps the procedure public but branches on ctx.session.userId - calling auth.getProjectAccess for members and share.hasAnonymousShareAccessToProject(projectId, cookies) for anonymous viewers - and throws TRPCForbiddenError when neither check passes, with unit tests covering anonymous-without-share, anonymous-with-unlocked-share, member-without-access and member-with-access.
Know when Openpanel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Unauthenticated network request, low complexity, no privileges or interaction; discloses only limited annotation metadata so C:L with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OpenPanel before 3.0.0 contains a missing authorization vulnerability that allows unauthenticated attackers to read any project's annotations by calling the public reference.getChartReferences tRPC procedure. Attackers can send requests with guessable slug-based project IDs to dump cross-tenant annotation titles, descriptions, and dates such as release notes and deploy markers.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Code execution in OpenPanel's js-runtime component lets an authenticated user who holds project write access escape the
An issue in Open Panel v.0.3.4 allows a remote attacker to escalate privileges via the Fix Permissions function. Rated h
An issue in Open Panel v.0.3.4 allows a remote attacker to escalate privileges via the Fix Permissions function. Rated m
Cross Site Request Forgery vulnerability in Open Panel OpenAdmin v.0.3.4 allows a remote attacker to escalate privileges
Server-side request forgery in OpenPanel before 2.3.0 lets unauthenticated remote attackers coerce the panel server into
Unauthenticated ClickHouse SQL injection in OpenPanel before 3.0.0 lets remote attackers read other tenants' analytics d
Sandbox escape in OpenPanel's JavaScript webhook-template runtime (packages/js-runtime) allows an authenticated project
Authenticated remote code execution in OpenPanel before 2.3.0 allows any project member with read access to escape the m
Unauthenticated information disclosure in OpenPanel (openpanel-dev/openpanel) exposes argon2id password hashes and full
Unauthenticated SSRF in OpenPanel before 2.3.0 exposes two utility endpoints - /misc/favicon and /misc/og - that blindly
Cross-tenant data exposure in OpenPanel before 3.0.0 lets any authenticated user read other projects' profiles, events a
Read-level project members in OpenPanel before 3.0.0 can retrieve plaintext integration secrets - Slack bot tokens, inco
EUVD-2026-110518
GHSA-74w8-8m6p-549q
NVD
CVE.org
EPSS
Exploit-DB