Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconJoin target board as member (PR:L)
-
DeliveryStore entity-encoded XSS payload in card title
-
ExploitPayload renders as inert text on live board, evading live-board defenses
-
InstallVictim exports board to standalone HTML file
-
C2Victim opens HTML export in browser and clicks card
-
ExecuteModal handler reads title via textContent, decoding entities, then assigns to innerHTML
-
ImpactScript executes in file:// context and exfiltrates all board data from export
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 | The attacker must have held board membership at some point in order to create or edit a card - this is the PR:L condition. The attack does not require current active membership; a revoked member's planted payload remains in the card data indefinitely. Exploitation further requires a second victim action: a board member must independently perform an HTML export of the board (the export feature must be available and not administratively disabled), and the recipient must open the resulting HTML file in a web browser and click on the specific card containing the payload. The attack is scoped exclusively to data present in that exported HTML file; it does not provide access to the live Wekan database, other boards not included in the export, or server-side infrastructure. Content Security Policy enforced by the Wekan origin does not apply, as the exported file executes from the local |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N, score 7.6) is consistent with the attack mechanics: network delivery, no special timing conditions, low-privilege board membership required, active victim interaction needed, and a genuine scope change because script execution occurs in the victim's |
| Exploit ScenarioDerived | A board member with minimal access creates a card whose title contains an entity-encoded payload such as |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Stored cross-site scripting in Wekan's HTML board export function allows a board member - including one whose access has since been revoked - to inject JavaScript that executes when any recipient clicks a card in a downloaded HTML export file. Wekan versions 8.72 through 10.23 are affected; the exploit survives membership removal and is capable of exfiltrating all board data embedded in the export to an attacker-controlled endpoint. No public exploit code or CISA KEV listing has been identified at time of analysis, though the Scope:Changed CVSS classification and post-revocation persistence make this more dangerous than its 7.6 score suggests.
RemediationAI
Upgrade to Wekan version 10.23 or later, which replaces the vulnerable innerHTML concatenation in addBoardHTMLToZip() with safe DOM-node construction; the patched release is available at https://github.com/wekan/wekan/releases/tag/v10.23 and the specific fix commit is 2d32e34621d340b00be4f66a6a2106ab4575cc70. For installations that cannot be immediately upgraded, restricting or disabling the HTML board export feature eliminates the execution pathway entirely, since the exploit fires only inside the downloaded export file and not within the live Wekan interface - the trade-off is loss of the export capability for all users. Auditing existing boards for card titles or bodies containing entity-encoded markup patterns (e.g., <script, <img, onerror=) can identify payloads already planted, though defenders should account for the possibility of nested or obfuscated encoding. Instructing users to avoid opening downloaded HTML exports in a browser is operationally impractical as a durable control and should not substitute for patching.
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
The vulnerability resides in the addBoardHTMLToZip() function within client/lib/exportHTML.js of the Wekan Meteor application (CPE: cpe:2.3:a:wekan:wekan:*:*:*:*:*:*:*:*). The root cause is a CWE-79 (Improper Neutralization of Input During Web Page Generation) variant involving a two-stage parse. Card content is first read via the DOM .textContent property, which silently decodes HTML entities - converting a stored value like <img src=x onerror=alert(1)> back into a live tag string. That decoded string is then concatenated directly into a content.innerHTML assignment inside the modal-building click handler that is embedded in the exported HTML file. Because the exported document runs from the local file:// origin when opened by the victim, it falls outside the Wekan server's Content Security Policy, and the browser executes the injected handler with full access to all content rendered in that file. The fix in v10.23 replaces the innerHTML concatenation with DOM node construction using document.createElement and .textContent assignments exclusively, preventing any second-parse execution.
Know when Wekan 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
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:L/A:N
PR:L for required board membership; UI:R because victim must export then click the card; S:C because execution occurs in the victim's file:// context, outside Wekan's server-side CSP.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Wekan is open source kanban built with Meteor. From 8.72 until 10.23, addBoardHTMLToZip() in client/lib/exportHTML.js read a card title and body through textContent, which decoded entity-encoded markup, and then interpolated titleText and allText into content.innerHTML in the exported index.html. A board member could store an entity-encoded event-handler payload in a card title that remained inert on the live board but was reparsed and executed when a recipient clicked the card in the downloaded HTML export, allowing the script to read and transmit all board data contained in that export, including content added after the attacker's membership was removed. Version 10.23 builds the modal with DOM nodes and assigns untrusted values through textContent. This issue is fixed in version 10.23.
Executive ViewAI
Wekan versions 8.72 through 10.23 contain a stored cross-site scripting vulnerability in HTML board exports that allows board members-even those with revoked access-to inject malicious scripts that execute when recipients download exported files and can exfiltrate all board data. No public exploit has been identified at time of analysis, but the post-revocation persistence and data exposure risk warrant immediate patching to prevent governance bypass.
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.
packages/wekan-ldap/server/ldap.js in Wekan before 4.87 can process connections even though they are not authorized by t
OS command injection in Wekan (the open-source Meteor-based kanban board) before version 9.07 lets an authenticated user
Authentication bypass in Wekan (open-source Meteor kanban) before version 9.46 lets an unauthenticated attacker imperson
A stored cross-site scripting (Stored XSS) vulnerability in file preview in WeKan before 6.75 allows remote authenticate
Wekan, open source kanban board system, between version 3.12 and 4.11, is vulnerable to multiple stored cross-site scrip
Account takeover in Wekan (open-source Meteor kanban) before 9.32 allows an attacker who controls an OIDC provider accou
Privilege escalation in Wekan open-source kanban (all versions prior to 9.89, dubbed 'SortBleed') allows any board membe
Privilege escalation in the self-hosted Wekan kanban board through version 18.15 allows any authenticated user to rewrit
Stored XSS in Wekan prior to v9.90 allows authenticated board members to upload HTML containing JavaScript disguised as
LDAP filter injection in WeKan before 8.19 allows remote unauthenticated attackers to manipulate LDAP search filters and
Privilege escalation in WeKan (versions prior to 8.35) allows authenticated board members with low privileges to perform
Wekan's outgoing webhook URL validator in versions 8.36 through 9.73 allows authenticated board members to bypass SSRF p
EUVD-2026-62710
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB