Wekan
CVE-2026-55234
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Wekan with own writable board
-
DeliveryCraft DDP /cards/update with new boardId in $set
-
ExploitSource-board allow rule approves the write
-
ExecutionCard/list/swimlane relocated into victim's private board
-
ImpactUnauthorized content injected across board boundary
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion 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 be an authenticated Wekan user (PR:L) who has write access to at least one board they control, and must issue a raw DDP update to /cards/update, /lists/update, or /swimlanes/update with a new destination boardId placed in the update modifier's $set. The destination must be a valid boardId (a private board the attacker is not a member of) - exploitation targets integrity of that destination board rather than reading its contents. Limiting factors: it is not remote-unauthenticated (a valid account with a writable board is required), it requires a client capable of sending arbitrary DDP modifiers rather than the standard UI, and it is neutralized entirely on Wekan 9.37+ where the destination board's write access is validated. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L, base 8.5) is internally consistent with the description: network-reachable DDP endpoint, low complexity, low privileges (an ordinary authenticated user with one writable board), no user interaction, and a scope change because the impact crosses into a board outside the attacker's authorization. Impact is integrity-centric (I:H) - unauthorized content injected into a private board - with minor availability effect (A:L) and no direct confidentiality loss (C:N), since the attacker pushes data in rather than reading the private board out. No EPSS score, KEV entry, or POC was supplied, so exploitation probability signals are absent; this is a genuine but bounded authorization flaw rather than a mass-exploitation candidate. The main caveats: the attacker must already hold a valid account with write access to at least one board, and the flaw enables data-placement/integrity abuse rather than data theft or code execution - so real-world priority is moderate-to-high for multi-tenant Wekan instances and lower for single-user or trusted-team deployments. |
| Exploit ScenarioDerived | An attacker registers or already holds a normal Wekan account and creates or is granted write access to their own board. Using a crafted DDP call to /cards/update (or /lists/update, /swimlanes/update) they set a new boardId in the update modifier pointing at a private board they are not a member of; the source-board-only allow check passes and the card/list/swimlane is relocated into the victim's private board. No public POC is referenced, but the fixing commit fully describes the bypass, and the low complexity plus no user interaction make reproduction straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 15, 2026
Improper access control in Wekan (self-hosted open-source Meteor kanban) before version 9.37 lets any authenticated user with write access to their own board relocate cards, lists, or swimlanes into a private board they do not belong to. The DDP update allow rules only authorize against the document's stored (source) boardId and never validate the attacker-supplied destination boardId in the update modifier, so /cards/update, /lists/update, and /swimlanes/update can be abused to inject content across a trust boundary. No public exploit identified at time of analysis, but the fixing commit and advisory publicly document the exact bypass, lowering the barrier to reproduction.
RemediationAI
Vendor-released patch: upgrade Wekan to version 9.37 or later (https://github.com/wekan/wekan/releases/tag/v9.37), which introduces the denyCrossBoardMove deny rule enforcing write access on the destination board for Cards, Lists, and Swimlanes updates; this is the primary and complete fix per advisory GHSA-gm7v-pc38-53jr. If an immediate upgrade is not possible, reduce exposure by limiting account provisioning to trusted users and disabling or restricting self-service registration so that arbitrary authenticated users cannot obtain write-capable boards, and monitor board membership and card/list/swimlane audit activity for unexpected cross-board relocations; note these are only partial compensating controls because any legitimate writer remains capable of the move until patched. Operators can also cherry-pick commit d369a3614a4737c29d48a6345a790edf2506ddae onto an earlier build if they cannot take the full 9.37 release.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Wekan is built on Meteor, which exposes collections to clients over DDP and gates writes through Meteor's allow/deny callback model. The affected code is the server-side allow rules in server/permissions/cards.js, lists.js, and swimlanes.js, which call allowIsBoardMemberWithWriteAccess against the document's current boardId. The root cause is CWE-284 (Improper Access Control): the authorization check binds to the source board the caller already controls, while the MongoDB-style update modifier ($set.boardId) can carry a different destination boardId that is never re-validated. Because Meteor allow rules approve if any rule allows and the modifier is applied after the check, the caller's ownership of the source board is sufficient to satisfy the guard, allowing a cross-board move. The fix (commit d369a36) adds a denyCrossBoardMove deny rule that inspects modifier.$set.boardId and denies the write unless the caller has write access to the destination board via allowIsBoardMemberWithWriteAccess.
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:N/S:C/C:N/I:H/A:L
Authenticated user with write access to one board gives PR:L; network DDP endpoint and simple modifier give AV:N/AC:L; crossing into an unauthorized board is a scope change (S:C) with integrity injection (I:H) and no read (C:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Wekan is open source kanban built with Meteor. Prior to 9.37, Wekan DDP update allow rules in server/permissions/cards.js, server/permissions/lists.js, and server/permissions/swimlanes.js authorize against the stored source boardId and do not validate a new boardId in the update modifier. Any authenticated user with write access to their own board can call /cards/update, /lists/update, or /swimlanes/update to move cards, lists, or swimlanes into a private board they are not a member of. This issue is fixed in version 9.37.
Executive ViewAI
Wekan before version 9.37 contains an improper access control vulnerability that allows any authenticated user with write permissions to relocate cards, lists, and swimlanes into private boards they do not have authorization to access, creating a data exposure risk across trust boundaries. With a CVSS score of 8.5 and publicly documented bypass techniques lowering reproduction barriers, organizations using Wekan face material risk of unauthorized access to sensitive project information. Immediate inventory and prompt upgrading to version 9.37 or later is required to restore proper access controls.
Apply vendor patch: Upgrade to Wekan version 9.37 or later.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)CVE.org
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
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB