Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as project-read member or share-link holder
-
DeliverySubmit crafted conversion chart series name or date
-
ExploitBreak out of ClickHouse single-quote string literal
-
ExecutionInject OR 1=1 to neutralize project_id scope
-
ImpactRead other tenants' analytics and event data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated low-privilege actor: either a project-read member (who controls the series[].name field) or a share-link holder (who controls startDate/endDate), reaching the vulnerable path via the tRPC chart.conversion endpoint (chart.ts:547, chartProcedure). No non-default configuration is needed - the flaw is in the default conversion-query code path, where event names and dates are interpolated raw into ClickHouse SQL while projectId is sqlstring.escape()d. The cross-tenant read specifically depends on the shared ClickHouse reader credential being able to read all rows, so that neutralizing project_id scope exposes other tenants. LIMITING FACTORS: the attacker must already possess at least read-level project access or a valid share link (PR:L, not unauthenticated), the deployment must be multi-tenant for cross-tenant impact to be meaningful, and only confidentiality is affected (no write/integrity or availability impact). |
| Impact | Signals are consistent in pointing to a real but moderate-priority issue rather than an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H) and score of 7.1 describe a network-reachable, low-complexity flaw requiring low privileges, with high confidentiality impact and no integrity or availability impact - matching the described cross-tenant analytics read. EPSS is low (0.23%, 14th percentile) and the CISA SSVC signals are benign (Exploitation: none, Automatable: no, Technical Impact: partial), and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation. A detailed public PoC reference exists in the GHSA advisory (including a concrete injection payload), but it is not verified as a working, weaponized exploit tool, and PoC availability is distinct from active exploitation. The vuln.today 'this_week' decision label reflects a genuine authenticated cross-tenant data-breach vector that warrants prompt remediation, but the authentication requirement (PR:L - a project-read member or share-link holder) and SSVC 'Automatable: no' make opportunistic mass exploitation unlikely. CONFLICT TO VERIFY: input metadata states 'Patch: Available from vendor' and the NVD/EUVD data imply a fix in 3.0.0, yet the GHSA source-code advisory explicitly states the fix is 'unreleased'/'not yet patched' and the code is vulnerable on HEAD - confirm fixed-version availability directly with the vendor before relying on an upgrade. |
| Exploit ScenarioDerived | An attacker who holds low-privilege project-read access (or a valid share link) to an OpenPanel instance submits a conversion chart whose event series name - e.g. x' OR 1=1 OR events.name = 'y - breaks out of the single-quoted ClickHouse string literal, or alternatively sets a non-YYYY-MM-DD startDate/endDate that is interpolated verbatim. Because the ClickHouse reader credential reads all rows, the OR 1=1 neutralizes the project_id tenant scope and returns other organizations' analytics and event data. A concrete PoC payload is published in the GHSA advisory, though it is not verified as a packaged working exploit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
SQL injection in OpenPanel's conversion analytics query allows project-read members and share-link holders to read other tenants' ClickHouse analytics data. Before version 3.0.0, ConversionService.getConversion interpolates series event names and startDate/endDate values raw inside single quotes, so a payload such as x' OR 1=1 neutralizes the project_id tenant scoping; the projectId value itself is passed through sqlstring.escape, so the omission is confined to the event-name and date fields. Exploitation requires an authenticated low-privilege actor (CVSS 4.0 PR:L) or a valid share link, and cross-tenant impact depends on a multi-tenant deployment in which the ClickHouse reader credential can read all rows. The advisory includes a PoC payload description that is not verified as working exploit code; SSVC records exploitation as none and EPSS is 0.23% (14th percentile), so this is a real but moderate-priority exposure focused purely on confidentiality.
RemediationAI
Vendor-released patch: upgrade OpenPanel to 3.0.0 or later, which is the first version outside the affected range 0 <3.0.0; verify against the vendor advisory at https://github.com/Openpanel-dev/openpanel/security/advisories/GHSA-7fm7-rprq-g8rm. If you build from source rather than a release, the advisory's suggested fix is to wrap every interpolated event name and date in sqlstring.escape() exactly as funnel.service.ts:60 already does for event names, or to move the conversion query to parameterized ClickHouse query parameters - the vulnerable lines are conversion.service.ts:138-142, :179 and :180 (the date sink reached via normalizeBoundary in date.service.ts:239). Because exploitation requires an already-authenticated project-read member or a valid share link, reducing exposure in the interim means tightening who holds read-level project access and which share links are active, which is only a partial reduction of attack surface and does not remove the injection itself, especially in multi-tenant deployments where the ClickHouse reader credential can read all rows.
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
The flaw is CWE-89 SQL injection in the ClickHouse-backed analytics layer of OpenPanel, a multi-tenant web analytics product (CPE cpe:2.3:a:openpanel-dev:openpanel). In @openpanel/db conversion.service.ts, lines 138-142 build events.name = '${eventA.name}' and line 179 builds AND events.name IN ('${eventA.name}', '${eventB.name}') by direct string interpolation, while projectId at lines 96, 145 and 178 is correctly wrapped in sqlstring.escape() - showing the escaper was available and used for the tenant scope but not for event names. The sibling funnel.service.ts:60 does use sqlstring.escape(event.name), confirming the safe pattern already exists in the codebase. Dates reach a further sink at line 180 via toDateTime('${startDate}')/:180, where normalizeBoundary (date.service.ts:239) returns non-YYYY-MM-DD input verbatim. The injected query is executed through clix(...).from(subquery).execute() into chQuery, and because the shared ClickHouse reader credential can read all rows, an OR 1=1 condition added next to the project_id predicate returns other organizations' analytics and event data. The entry point is the tRPC chart.conversion procedure (chart.ts:547, chartProcedure), guarded by getProjectAccess at read level with an unconstrained zChartEvent.name string and no allowlist. The advisory explicitly distinguishes this sink from the already-fixed GHSA-cc5p-97vc-8fwv (chart.service getSelectPropertyKey) and GHSA-hwf2-2v2h-7892 (profile-column allowlist), neither of whose guards exist in this function.
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:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable tRPC endpoint (AV:N) with no special conditions (AC:L), but requires a project-read member or share-link holder (PR:L), yielding cross-tenant read-only confidentiality impact (C:H, I/A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
OpenPanel before 3.0.0 contains an sql injection vulnerability in ConversionService.getConversion that allows project-read members and share-link holders to inject ClickHouse SQL through unescaped event names and dates. Attackers can break out of string literals in series names or startDate/endDate values with OR 1=1 to neutralize project_id scoping and read other tenants' analytics data.
Executive ViewAI
OpenPanel versions prior to 3.0.0 contain a SQL injection vulnerability that could allow authenticated low-privilege users or share-link holders to access other tenants' ClickHouse analytics data in multi-tenant deployments. This threatens customer data confidentiality and could undermine trust in the platform's tenant isolation, affecting both the organization's reputation and potential regulatory obligations.
Apply vendor patch.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
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-110521
GHSA-4m7v-v664-jv5c
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB