Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-81731— Frappe 15.11.0 through 16.32.0 Stored XSS via Workspace Link Description

Quick assessment

Affected
frappe frappe
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Frappe 15.11.0 至 16.32.0 版本在存储和渲染工作区卡片描述时未进行跨站脚本(XSS)过滤。 具体而言, 数据类型的描述字段在 中被声明为带有 标志。 中的 函数会跳过所有携带该标志的字段,因此该字段的内容会被原样保存。 返回的描述内容未经任何修改,而 中的 通过 翻译辅助函数将其插入到一个启用了 的 Bootstrap 弹窗中。由于 辅助函数不对 HTML 进行转义,攻击者可以注入任意标记。 因此,拥有“Workspace Manager”(工作区管理员)角色的用户可以在公开工作区的卡片描述中

CVSS 5.4 · Medium
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-81731

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Frappe 15.11.0 through 16.32.0 Stored XSS via Workspace Link Description
Source: CVE Program / CVE List V5
Vulnerability Description
Frappe 15.11.0 through 16.32.0 stores and renders the workspace card description without XSS filtering. The description field of the Workspace Link doctype is declared with "ignore_xss_filter": 1 in frappe/desk/doctype/workspace_link/workspace_link.json, and _sanitize_content() in frappe/model/base_document.py skips any field carrying that flag, so the value is stored exactly as submitted. frappe.desk.desktop.get_desktop_page returns it unchanged, and LinksWidget.set_body() in frappe/public/js/frappe/widgets/links_widget.js interpolates it into a Bootstrap popover created with html: true, by way of the __() translation helper, which performs no HTML escaping. A user holding the Workspace Manager role can therefore place arbitrary markup in a public workspace's card description and have it execute in the session of any desk user who opens that workspace and hovers the description, including higher-privileged users, allowing session token theft and authenticated requests as the victim. The flag is removed on the development branch but remains present in the shipped 15.x and 16.x release lines, so no released version carries the fix.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
在Web页面生成时对输入的转义处理不恰当(跨站脚本)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
frappe frappe 15.11.0 ~ 16.32.0 -

II. Public POCs for CVE-2026-81731

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-81731

登录查看更多情报信息。

Patches & Fixes for CVE-2026-81731 (2)

Vendor Advisories for CVE-2026-81731 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-81731

No comments yet


Leave a comment