Executive brief
Frappe is a web application framework used to build enterprise business applications. A vulnerability in versions 15.11.0 through 16.32.0 allows users with the Workspace Manager role to inject malicious code into workspace card descriptions. When other users view the workspace and hover over the description, the malicious code executes in their browser session, potentially allowing attackers to steal session credentials or perform unauthorized actions as those users.
Technical details
The vulnerability is a stored cross-site scripting (XSS) flaw in the Workspace Link doctype. The description field is configured with "ignore_xss_filter": 1 in workspace_link.json, causing the _sanitize_content() function in frappe/model/base_document.py to skip HTML sanitization. The unsanitized value is then rendered by LinksWidget.set_body() in frappe/public/js/frappe/widgets/links_widget.js as HTML content in a Bootstrap popover (created with html: true), with no escaping performed by the translation helper __(). An authenticated attacker with Workspace Manager role can inject arbitrary HTML/JavaScript that will execute in the browser of any desk user who hovers over the description, including privileged users, enabling session hijacking or impersonation. The fix has been applied to the development branch but is not present in any shipped 15.x or 16.x release.
Affected products
- Frappe Frappe 15.11.0 through 16.32.0
Timeline
- 2026-08-27: disclosed