CVE-2026-81731: Frappe workspace card description XSS

CVE-2026-81731 · Severity: medium · CVSS 5.4 · Published 2026-08-27

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.

Technologies: Frappe. Vendors: Frappe.

Quick answers

Is CVE-2026-81731 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-81731 being exploited in the wild.
How severe is CVE-2026-81731?
Medium severity, with a CVSS score of 5.4, published 27 August 2026.
Which products and versions are affected?
Frappe 15.11.0 through 16.32.0.
Is there a fix for CVE-2026-81731?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-81731 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-81731?
Check whether you run Frappe at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

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

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.