Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as wallabag user
-
DeliveryTrigger failed Pocket/Shaarli import
-
ExploitUpload HTML with script, no anchors
-
ExecutionFile persists at predictable /uploads path
-
PersistLure victim to open URL
-
ImpactScript runs in victim's session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated wallabag account (PR:L). The attacker must trigger a FAILED import using one of three specific features - Pocket HTML import, Pocket CSV import, or Shaarli import - while supplying an HTML file that contains script elements but deliberately NO anchor elements, which is the condition that leaves the malicious file retained at the predictable path /uploads/import/<user-id>.html. Exploitation is further limited by requiring victim interaction (UI:P): a separate logged-in user must open the crafted URL for the script to execute. It does not affect default behavior absent a user intentionally abusing the import feature, and it grants no impact to the wallabag server itself - only to other users' browser sessions. |
| Impact | This is a genuine but modest-severity issue, correctly rated medium (CVSS 4.0 base 5.1). The CVSS 4.0 vector tells a consistent story: network vector (AV:N) and low complexity (AC:L), but exploitation requires an authenticated attacker (PR:L) and passive victim interaction (UI:P), with no impact to the vulnerable system itself (VC:N/VI:N/VA:N) and only low confidentiality and integrity impact to a subsequent system (SC:L/SI:L) - i.e. the victim's browser session, which is exactly what a stored XSS produces. No EPSS score, no CISA KEV listing, and no POC flag are present in the input, so there is no signal of active or widespread exploitation; the signals are not conflicting, they are simply sparse. The combination of required authentication, required victim interaction, and the absence of exploitation telemetry places this well below true-priority status. For a self-hosted bookmarking application this is a defense-in-depth bug to patch on a normal cycle rather than an emergency. Note that technical writeups exist (a hackmd analysis and a VulnCheck advisory) describing the mechanism in detail, which lowers the effort to reproduce even though no packaged exploit is indicated. |
| Exploit ScenarioDerived | An authenticated wallabag user deliberately triggers a failed Pocket HTML, Pocket CSV, or Shaarli import that uploads an HTML file containing script but no anchor elements; the file is retained at the predictable /uploads/import/<user-id>.html path. The attacker then lures another logged-in wallabag user to open that URL, executing attacker-controlled script in the victim's authenticated session. No public exploit identified at time of analysis, though detailed technical writeups are referenced. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Stored cross-site scripting in wallabag 2.6.13 through 2.6.14 allows an authenticated user to upload a crafted HTML file (containing script but no anchor elements) via a deliberately failed Pocket HTML, Pocket CSV, or Shaarli import, leaving the payload at a predictable /uploads/import/<user-id>.html path. When another logged-in user visits that URL, the script executes in their wallabag session, granting limited cross-site script execution (assessed CVSS 3.1: AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N; CVSS 4.0 base 5.1, medium severity). No public exploit identified at time of analysis; exploitation requires an authenticated account and victim interaction.
RemediationAI
No vendor-released patch identified at time of analysis. Until a fixed version is available, apply these compensating controls: 1) Disable the affected import features (Pocket HTML, Pocket CSV, Shaarli) via wallabag configuration if not required; 2) Restrict direct access to the /uploads/import/ directory by adding server rules (e.g., in .htaccess or web server config) to force the Content-Type to text/plain and Content-Disposition to attachment for any files under that path, preventing HTML execution - trade-off: may break legitimate import previews; 3) Proactively delete files in /uploads/import/ after failed imports (manual cleanup or cron job) - trade-off: not real-time and requires maintenance; 4) Limit account creation and ensure only trusted users have import privileges, since exploitation requires an authenticated account. Monitor the wallabag GitHub repository for a patch. Advisory links: VulnCheck advisory and HackMD write-up.
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
wallabag is a PHP/Symfony-based self-hosted read-it-later application. The vulnerability is a stored cross-site scripting (CWE-79) in the import functionality. When an authenticated user initiates a Pocket HTML, Pocket CSV, or Shaarli import with a file that triggers a failure, the uploaded file is not deleted but instead written to the web-accessible directory /uploads/import/ with a filename derived from the user's ID (e.g., <user-id>.html). Because the file is served as HTML and lacks anchor elements, it bypasses some sanitization heuristics (reference to .htaccess suggests the web server may be configured to serve HTML from that path). The script then executes in the browser of any other authenticated user who visits the crafted URL, leading to session compromise limited to that user's browser context (S:C, but C:L/I:L/A:N). The .htaccess reference and the HtmlController.php source confirm that import handling and static file serving are the core issues.
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:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Authenticated attacker (PR:L) stores script that runs in another user's browser requiring their interaction (UI:R) and crossing a trust boundary (S:C), yielding low C/I and no availability impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
wallabag 2.6.13 through 2.6.14 contains a stored cross-site scripting vulnerability that allows authenticated users to host arbitrary HTML by triggering a failed Pocket HTML, Pocket CSV or Shaarli import. Attackers can upload an HTML file with script but no anchor elements, leaving it at the predictable /uploads/import/<user-id>.html path to execute script in victims' wallabag sessions.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-99012
GHSA-rqqm-gvvm-8vpc
NVD
CVE.org
EPSS
Exploit-DB