Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted profile ID to /track
-
ExploitPayload matches target cohort
-
ExecutionOperator exports cohort to CSV
-
ImpactSpreadsheet executes formula and exfiltrates adjacent cells
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V1 - Encoding and Sanitization CSV injection prevention
|
| Exploitation Conditions | Exploitation requires an attacker to POST tracking events to the /track endpoint (reachable without authentication, PR:N) using a profile ID containing a spreadsheet formula such as =HYPERLINK(...) that is crafted to match an existing cohort's membership criteria (the AT:P attack requirement). Realized impact further depends on a privileged OpenPanel operator subsequently exporting that cohort's members to CSV and opening the file in a spreadsheet application that evaluates formulas and permits the resulting external data fetch / hyperlink action (the UI:P passive interaction). These prerequisites - a matching cohort, an operator-initiated export, and a victim opening the file in a formula-executing client - are the primary factors limiting real-world exploitation despite the unauthenticated network entry point. |
| Impact | All signals point to a LOW real-world priority. The input CVSS 4.0 base score is 2.3 (Low), and the vector itself explains why: although AV:N and PR:N indicate a network-reachable, unauthenticated injection point (the /track endpoint), two strong limiters are present - AT:P (the crafted profile ID must match an existing cohort) and UI:P (a victim operator must passively export the cohort to CSV and open it in a spreadsheet). Impact is bounded to VC:L/VI:L with VA:N and no scope change (SC:N/SI:N/SA:N), consistent with CWE-1236 formula injection that leaks only adjacent cell data. No EPSS score was provided, so exploitation probability cannot be quantified from the input. This is NOT in CISA KEV and no public exploit code was identified, so this is 'no public exploit identified at time of analysis' - although two technical write-ups (VulnCheck advisory and a hackmd analysis) exist, raising awareness without providing weaponized tooling. No SSVC decision data was supplied. Bottom line: this is a genuinely low-severity, operator-and-victim-dependent issue rather than a high-CVSS/low-real-risk mismatch - the low score is well justified by the multi-step, interaction-gated attack path. |
| Exploit ScenarioDerived | An unauthenticated attacker sends tracking events to OpenPanel's /track endpoint using a profile ID crafted as a spreadsheet formula (e.g. =HYPERLINK(...)) designed to match a defined cohort. Later, when an OpenPanel operator exports that cohort's members to CSV and opens the file in a spreadsheet application, the embedded formula executes and exfiltrates adjacent cell data to an attacker-controlled destination. No public exploit code was identified, though technical write-ups describe the flaw in detail. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
CSV formula injection in OpenPanel through 2.3.0 lets unauthenticated remote attackers inject spreadsheet formulas into cohort-member exports by submitting tracking events to the /track endpoint with crafted profile IDs (for example =HYPERLINK(...)) that satisfy an existing cohort's membership criteria. The payload only materializes if an OpenPanel operator later exports that cohort to CSV and opens the file in a spreadsheet client that evaluates formulas and permits the resulting external fetch, so realized impact is limited to low-severity adjacent-cell data disclosure (assessed CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N). No public exploit code was identified at time of analysis and CVE-2026-108579 is not in CISA KEV; all signals point to a low real-world priority.
RemediationAI
No vendor-released patch was identified at time of analysis, so remediation is mitigation-first. The most direct server-side fix is to neutralize formula-triggering prefixes when generating cohort CSVs in apps/start/src/utils/csv-download.ts - prefix any exported value beginning with =, +, -, @, tab or CR with a single quote or a leading apostrophe; the trade-off is that exported identifiers will carry an extra character and may need stripping on re-import. As an input-side control, validate or reject profile IDs submitted to the /track endpoint that begin with formula characters, accepting that this may reject some legitimate identifier formats. Operationally, treat OpenPanel cohort exports as untrusted: open them in a text editor or import them with spreadsheet formula evaluation disabled, or apply Excel's 'Protected View'/Data-Connection blocking and LibreOffice's formula-recalculation-off settings, since those controls sacrifice the convenience of live formulas. Restrict access to the export functionality to trusted operators to reduce the chance of a formula-bearing file being opened, and monitor for deployments newer than 2.3.0 from https://github.com/Openpanel-dev/openpanel that address CSV escaping. Consult https://www.vulncheck.com/advisories/openpanel-through-2.3.0-csv-formula-injection-via-cohort-member-export and https://hackmd.io/@haind/openpanel-cohort-csv-formula-injection for reproduction details and any updated guidance.
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 root cause is CWE-1236 (Improper Neutralization of Formula Elements in a CSV File), the classic spreadsheet/CSV injection class in which user-controlled text is serialized verbatim into a CSV export without escaping characters that spreadsheet applications interpret as formula starters (=, +, -, @, tab, CR). OpenPanel is a web analytics platform; its unauthenticated /track endpoint ingests tracking events that include a profile ID, and those identifiers are later used as cohort membership criteria. The vulnerable export logic lives in apps/start/src/utils/csv-download.ts (referenced at commit 7c4d22ae4b6b20fb08eb5c94a0cd3cfebb3d32ca), where profile IDs are written into cohort CSV files without neutralizing formula prefixes. Because the formula string is stored as data and only becomes active when a human opens the exported CSV in a formula-evaluating client (Microsoft Excel, LibreOffice Calc), the vulnerability is a stored/passive-interaction issue rather than direct server-side code execution despite the 'Code Injection' tag. No CPE identifiers were supplied; the affected component is the cohort member export path of OpenPanel 2.3.0 and earlier.
Know when the next one hits your stack
- 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:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Unauthenticated network injection (AV:N/PR:N) but AC:H reflects the required cohort match and UI:R the operator export/open step; impact limited to low confidentiality and integrity of exported data.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
OpenPanel through 2.3.0 contains a CSV formula injection vulnerability that allows unauthenticated attackers to embed spreadsheet formulas by supplying crafted profile IDs to the /track endpoint. Attackers can send tracking events with profile IDs like =HYPERLINK(...) matching a cohort, so exported cohort CSVs execute formulas that exfiltrate adjacent cell data.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
EUVD-2026-96362
GHSA-qhg3-x2wc-w8x2
NVD
CVE.org
EPSS
Exploit-DB