Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify exposed Wekan instance
-
DeliverySend GET to export endpoint with crafted invalid authToken
-
ExploitReactiveCache.getUser() returns undefined
-
Executionuser._id.toString() throws TypeError
-
PersistUnhandled async rejection crashes Meteor process
-
ImpactAll users denied service until manual restart
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The four export API endpoints must be network-reachable: /api/boards/:boardId/export, /api/boards/:boardId/attachments/:attachmentId/export, /api/boards/:boardId/export/csv, and /api/boards/:boardId/exportExcel. The attacker must supply any value in the authToken query parameter that does not correspond to an active user session - an entirely fabricated or random token string qualifies. No valid board ID is required to trigger the crash because the user lookup fails before board authorization is evaluated. What limits exploitation: (1) the target board ID must be guessable or leaked (though any board ID suffices since the crash precedes authorization checks), and (2) the export endpoints must not be blocked by a reverse proxy or WAF. The CVSS PR:L rating suggests the vendor considers some minimal access required, but the crash mechanism described operates on an invalid - not merely low-privilege - token, indicating no valid prior authentication is needed to reach the vulnerable code path. |
| Impact | The NVD-assigned CVSS 3.1 score of 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) reflects a Medium-severity, network-exploitable DoS with no confidentiality or integrity impact. The availability impact is rated High because a single request crashes the entire server process, not just the requesting session. The PR:L designation warrants scrutiny: the crash is triggered by an invalid token - a value that matches no valid session - meaning an attacker needs no prior valid credentials, only network reach to the export endpoints. This suggests the true exploitation barrier may be closer to PR:N than PR:L. No EPSS score was provided in the input data. No KEV listing and no public exploit code exist at time of analysis; exploitation probability is inferred as moderate given the attack path is fully described in the public security advisory and the fix commit includes a detailed explanation of the crash mechanism. The attack is automatable (AC:L, no UI required) and a single request suffices, making this a realistic operational risk for any internet-exposed Wekan deployment. Teams should treat upgrade to v10.38 as routine but timely maintenance, not an emergency. |
| Exploit ScenarioDerived | An attacker with network access to an exposed Wekan instance sends a single GET request such as GET /api/boards/<any-boardId>/export?authToken=AAAA to the server. ReactiveCache.getUser('AAAA') returns undefined because no session matches that token; the handler then executes undefined._id.toString(), producing a TypeError. Meteor's async runtime treats this as an unhandled rejection and terminates the Node.js process, taking all active Wekan sessions offline until an administrator restarts the service. Repeated requests prevent recovery, sustaining a denial-of-service condition indefinitely. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Process-terminating denial of service in Wekan's export API (versions prior to 10.38) allows an attacker to crash the entire server with a single crafted GET request. Four export handlers in models/export.js and models/exportExcel.js called user._id.toString() on the undefined result of ReactiveCache.getUser() without a null guard; supplying an invalid authToken query parameter to any export endpoint triggers a TypeError that propagates as an unhandled async rejection and terminates the Meteor/Node.js process, denying service to all concurrent users. No public exploit code has been identified at time of analysis and this CVE does not appear in the CISA KEV catalog, though the attack path is trivially reproducible given the explicit description and public commit diff.
RemediationAI
Upgrade Wekan to version 10.38 or later; this is the vendor-confirmed fix (https://github.com/wekan/wekan/releases/tag/v10.38, commit 40de1799aed7c31494579659850578691171d895). Version 10.38 adds explicit 401 guards after every authToken lookup and wraps all export handlers with safeRoute() so unexpected exceptions produce controlled HTTP responses rather than process crashes. If immediate upgrade is not feasible, restrict network access to the export API paths (/api/boards/*/export, /api/boards/*/export/csv, /api/boards/*/exportExcel, /api/boards/*/attachments/*/export) at the reverse proxy or firewall layer, permitting only trusted IP ranges - the trade-off is loss of external export functionality until the patch is applied. Do not rely on application-layer authentication alone as a compensating control, since the crash is triggered before authentication is enforced.
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
Wekan is an open-source Kanban board application built on the Meteor framework (Node.js). The vulnerable code in models/export.js and models/exportExcel.js registers async route handlers via WebApp.handlers.get() for four export endpoints. Each handler reads an authToken from the query string and calls ReactiveCache.getUser() to resolve a user object. Because JavaScript returns undefined (not null) for a failed cache lookup, and because the handlers immediately dereferenced user._id without checking for undefined, any unrecognized token value produced a TypeError. In Meteor's Node.js runtime, an unhandled rejection from an async route handler causes a full process crash - a behavior documented in the repo's own ldapGroupSync.js comments and confirmed by the fix commit. Identical guards (undefined check + 401 response) already existed in models/exportPDF.js and models/exportExcelCard.js, but were absent from the four newly patched handlers. The root cause class is CWE-476 (NULL Pointer Dereference), manifesting in JavaScript as property access on an undefined value. Affected CPE: cpe:2.3:a:wekan:wekan:*:*:*:*:*:*:*:* for all versions below 10.38.
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:U/C:N/I:N/A:H
Crash requires only an invalid token on a public endpoint - no valid credentials needed - so PR:N; no confidentiality or integrity impact applies.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Wekan is open source kanban built with Meteor. Prior to 10.38, the /api/boards/:boardId/export, /api/boards/:boardId/attachments/:attachmentId/export, /api/boards/:boardId/export/csv, and /api/boards/:boardId/exportExcel handlers in models/export.js and models/exportExcel.js looked up a user from the attacker-controlled authToken query parameter and immediately called user._id.toString() without checking whether ReactiveCache.getUser() returned undefined. A request for a private board with an unknown token therefore threw a TypeError from an asynchronous route, producing an unhandled rejection that could terminate the Wekan process and deny service to all users. Version 10.38 adds a 401 guard after every export token lookup and wraps export handlers with safeRoute() so unexpected exceptions become controlled responses. This issue is fixed in version 10.38.
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
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-62714
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB