Skip to main content

wallabag EUVDEUVD-2026-99012

| CVE-2026-110228 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-13 disclosure@vulncheck.com GHSA-rqqm-gvvm-8vpc
5.1
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as wallabag user
  2. Delivery
    Trigger failed Pocket/Shaarli import
  3. Exploit
    Upload HTML with script, no anchors
  4. Execution
    File persists at predictable /uploads path
  5. Persist
    Lure victim to open URL
  6. Impact
    Script 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

wallabag 2.6.13 ≤2.6.14

Affected Packages

euvd wallabag no fix

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

Vendor (vulncheck) PRIMARY 5.1 MEDIUM
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
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

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

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
self-hosted open-source read-later app, niche hobbyist/self-hoster footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy