Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPOST crafted URL to /api/bookmarks
-
DeliveryStore XSS payload with quote and event handler
-
ExploitVictim opens bookmark list
-
ExecutionUnescaped URL executes script in browser
-
ImpactIssue same-origin API calls as viewer
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 | Exploitation requires a running bukuserver instance (the optional web server component of buku, versions 5.0 through 5.1.1) that is reachable by the attacker; the injection point is the unauthenticated /api/bookmarks endpoint, so no attacker authentication is needed to plant the payload (PR:N). The concrete prerequisite is submitting a bookmark URL containing a double quote plus an HTML event handler, which is stored unescaped by BookmarkModelView._list_entry(). The key limiting factor is that payload execution depends on a separate victim with an active session viewing the bookmark list page (UI:P / passive interaction) - the attacker cannot self-trigger impact; the realized damage is bounded to same-origin API actions performed with that viewer's credentials. |
| Impact | This is a genuine but moderate-priority web vulnerability rather than a high-urgency emergency. The supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N, base 5.3) is internally consistent with the description: the injection vector is the network-facing, unauthenticated /api/bookmarks endpoint (AV:N, PR:N, AT:N, AC:L), but exploitation is gated on a victim viewing the bookmark list (UI:P), and impact is limited to low confidentiality/integrity on both the vulnerable and a subsequent same-origin system (VC/VI:L, SC/SI:L) with no availability impact. This is a stored XSS that pivots into same-origin API abuse using the viewer's credentials, which is why the 4.0 vector correctly shows a subsequent-system impact rather than N. On exploitation signals the picture is quiet: the input provides no CISA KEV listing and no EPSS score, and no reference is labeled as confirmed working exploit code - the four references are the upstream GitHub issue (#911), the exact vulnerable source line (views.py#L133), the project repo, and the VulnCheck advisory. The vuln.today Decision label is 'this_month', not act_now/emergency, which aligns with a credible-but-not-actively-exploited server-side XSS. Net assessment: patch on a normal cadence (this month); the combination of an unauthenticated injection point plus the credential-borrowing impact raises it above a trivial self-XSS, but the required victim interaction, low technical impact, and absence of KEV/EPSS/confirmed exploit keep it out of drop-everything territory. |
| Exploit ScenarioDerived | An attacker sends a crafted bookmark whose URL contains a double quote and an HTML event handler to the unauthenticated /api/bookmarks endpoint of a bukuserver instance. When a legitimate user later opens the bookmark list, the unescaped URL rendered by BookmarkModelView._list_entry() breaks out of its attribute and executes attacker script in the viewer's browser, issuing same-origin API requests with that viewer's credentials. No public exploit is identified at time of analysis, though the vulnerable code line and the mechanism are documented in the references. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Stored cross-site scripting in buku's optional bukuserver web component (versions 5.0 through 5.1.1) lets an unauthenticated remote attacker plant a bookmark URL that executes JavaScript in the browser of any user who later opens the bookmark list page. Because the injected script runs same-origin with the bukuserver UI, it can issue API requests carrying the viewer's credentials, but the realized damage is bounded to those same-origin actions and requires a separate victim to load the affected page (passive user interaction). No CISA KEV entry and no public exploit identified at time of analysis; this is a genuine but moderate-priority web vulnerability rather than a high-urgency emergency.
RemediationAI
No vendor-released patch version is identified in the available data, so no fixed release can be cited; track the upstream issue at https://github.com/jarun/buku/issues/911 and the VulnCheck advisory at https://www.vulncheck.com/advisories/buku-5.0-through-5.1.1-stored-xss-via-bukuserver-bookmark-list-url for the fix, and upgrade as soon as a corrected release is published. Until then, the most effective compensating control is to remove attacker reach to the injection endpoint: bind bukuserver to localhost or place it behind a firewall/VPN so /api/bookmarks and the bookmark list are not internet-reachable - the trade-off is loss of remote access to the web UI and API. If the API must stay exposed, front it with an authenticating reverse proxy that also filters or rejects bookmark URLs containing quote characters and HTML event-handler syntax; this reduces payload planting but does not by itself protect logged-in viewers from payloads already stored in the database, and it changes the deployment's intended unauthenticated API behaviour. Where a stored payload is suspected, inspect and clean existing bookmark URLs in the underlying store, and treat any browser session that rendered a tainted list as potentially used to perform same-origin API actions with that user's credentials.
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
buku is a Python command-line bookmark manager, and bukuserver is its optional Flask-based web front end and REST API, which renders bookmark records through Flask-Admin style model views. In the affected releases the bookmark list renderer BookmarkModelView._list_entry() (bukuserver/views.py, line 133 in v5.1.1) emits the stored bookmark URL into the list HTML without escaping, so a URL containing a double quote terminates the surrounding attribute and lets an attacker append an HTML event handler that fires when the cell is rendered. The insertion path is the unauthenticated /api/bookmarks endpoint, meaning the payload is persisted in the bookmark store without any attacker credentials and then served to every subsequent viewer - a classic stored XSS (CWE-79) with a server-side persistence step and a client-side execution step. Severity is 5.3 under CVSS 4.0 (AV:N/AC:L/AT:N/PR:N/UI:P) and was independently assessed as CVSS 3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N, reflecting that the scope change and same-origin API abuse are real but limited to low-integrity/low-confidentiality actions available to the victim's session. The trigger for browser-side execution is not further described in the available sources beyond the unescaped quote-plus-event-handler URL construction.
Know when Buku 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:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Unauthenticated network injection via /api/bookmarks (AV:N/AC:L/PR:N), but requires a victim to view the list (UI:R); script runs in the viewer's origin to abuse the API (S:C), with low C/I and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
buku 5.0 through 5.1.1 contains a stored cross-site scripting vulnerability in the bukuserver bookmark list that allows attackers to execute script via an unescaped bookmark URL in BookmarkModelView._list_entry(). Attackers can submit a URL containing a double quote and event handler through the unauthenticated /api/bookmarks endpoint to issue same-origin API requests with viewers' credentials.
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-116102
NVD
CVE.org
GitHub
Exploit-DB