Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain org member credentials
-
DeliverySubmit import job with internal URL as fileUrl
-
ExploitOpenPanel API calls plain fetch() on attacker URL
-
ExecutionHTTP status and status text returned via import.get
-
PersistEnumerate internal hosts, ports, and paths
-
ImpactOptionally ingest CSV-formatted internal responses as analytics events
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated organization member account in the target OpenPanel instance (PR:L per CVSS). Critically, the access-control bug means even the lowest-privilege 'member' role with no project_access rows is sufficient - the intended level check is bypassed because |
| Impact | The CVSS 4.0 score of 5.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N) accurately reflects the moderate but real impact: network-accessible, low-complexity, requiring only a valid organization member account. The access-control bypass is particularly significant - it removes the assumption that 'member' role is a meaningful barrier, meaning any successfully registered user becomes an exploitable attacker. The SSRF oracle capability (HTTP status and status text are persisted in |
| Exploit ScenarioDerived | An attacker registers or obtains credentials for any organization member account in a target OpenPanel instance. They submit an import job with |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 10, 2026
Server-side request forgery in OpenPanel's data importer allows authenticated organization members to probe internal network hosts, services, and cloud metadata endpoints. The flaw exists because parseRemoteFile in packages/importer/src/providers/umami.ts calls plain fetch() on a caller-supplied config.fileUrl validated only by Zod's z.string().url() format check, entirely bypassing the project's own SSRF guard at apps/api/src/utils/safe-fetch.ts; the shared createFileImportConfig factory exposes the same unguarded field. An additional access-control bug means even a default 'member' with no project_access rows can exploit this path, because getProjectAccess returns boolean true instead of a level object, causing the intended access-level check to be skipped. No patched release was available at time of publication, and no public exploit has been identified at time of analysis.
RemediationAI
No vendor-released patch was identified at time of analysis - monitor the GitHub advisory GHSA-cj2r-3x54-88h7 for a fix release. As a compensating control, deploy network-level egress filtering on the host running the OpenPanel API to block outbound requests to RFC 1918 addresses (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local addresses (169.254.0.0/16), and loopback (127.0.0.0/8); this prevents the SSRF from reaching cloud metadata services and internal hosts but does not fix the root code path. If the importer feature is not operationally required, disable or remove access to the import endpoint at the API gateway or reverse proxy layer. For cloud deployments, enable IMDSv2 (token-required mode) on AWS EC2 instances to prevent credential extraction via the metadata endpoint even if SSRF is achieved. Restrict organization membership to trusted users until a patch is available, as the access-control bypass means any org member account is a viable attacker.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenPanel is an open-source analytics platform (cpe:2.3:a:openpanel-dev:openpanel:*:*:*:*:*:*:*:*). Its data importer feature supports ingesting remote files in Umami CSV format via a URL specified in the import configuration. The vulnerable code path in packages/importer/src/providers/umami.ts invokes the JavaScript runtime's native fetch() API rather than the project's safe-fetch.ts wrapper, which presumably maintains an allowlist or blocklist of private IP ranges and link-local addresses (e.g., RFC 1918, 169.254.0.0/16). Zod URL validation is a purely syntactic check - it confirms the string is a well-formed URL but permits destinations such as http://127.0.0.1:9911/ or http://169.254.169.254/latest/meta-data/. The root cause class is CWE-918 (Server-Side Request Forgery), compounded by a secondary access-control logic error: the getProjectAccess function returns a truthy boolean true for members with no project_access rows rather than a level object, bypassing the intended privilege gate and widening the attack surface to the lowest-privilege org role.
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:L/VI:N/VA:N/SC:L/SI:N/SA:N
Network SSRF requiring authenticated org member (PR:L); scope change because internal systems beyond OpenPanel are probed; confidentiality-only impact limited to status/text oracle and possible CSV data leak.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OpenPanel is an analytics platform. In all versions (no patched release available at time of publication), the data importer fetches a caller-supplied URL with plain fetch instead of the project's existing SSRF guard (apps/api/src/utils/safe-fetch.ts). In packages/importer/src/providers/umami.ts, parseRemoteFile calls fetch() on config.fileUrl, which is validated only by z.string().url(), so values such as http://127.0.0.1:9911/ or http://169.254.169.254/latest/meta-data/ are accepted; the shared createFileImportConfig factory gives the plausible provider the same field. An authenticated organization member - including a default 'member' with no project_access rows, for whom the intended access-level check is skipped because getProjectAccess returns boolean true rather than a level object - can therefore make the server connect to any address reachable from it. The resulting HTTP status and status text are persisted as Import.errorMessage and returned by import.get to the same user, providing a scanning oracle for internal hosts, ports and paths; if an internal response parses as Umami CSV, its rows are ingested as events and become readable in the attacker's analytics views.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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-75442
GHSA-vmh2-9r6c-h7q4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB