Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as any Wekan user over DDP
-
DeliverySubmit crafted catastrophic-backtracking regex to user-search
-
ExploitPCRE2 evaluates pattern during MongoDB collection scan
-
ExecutionIssue burst of concurrent search requests
-
ImpactSaturate mongod CPU and deny service to all users
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
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 | Requires an authenticated DDP session as any logged-in user for Sink 1 (the 'user-search' publication); Sink 2 (the 'searchUsers' method) additionally requires active board membership or site-admin status, and queries under 2 characters are rejected. Exploitation further requires a MongoDB backend whose PCRE2 engine permits catastrophic backtracking - the default on amd64/arm64 Docker and all bare-metal installs. Deployments using the bundled FerretDB v1 / RE2 (Go linear-time regex) backend, default only on ppc64le/s390x/riscv64, are not practically affected. Meaningful denial of service requires issuing several concurrent crafted requests (a single query only costs ~400-700 ms); pre-11.11 there is no DDP rate limiting on either endpoint. Only balanced catastrophic patterns work - unbalanced patterns throw a SyntaxError in Node before reaching the database. |
| Impact | This is a genuine but moderate-priority availability issue rather than a critical emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, 6.5) is internally consistent with the evidence: network-reachable DDP endpoints, low complexity, and low-privilege authentication (any logged-in user) with availability-only impact. The vuln.today decision label is 'this_month' - not 'act_now' or 'emergency' - which aligns with a self-hosted DoS bug that requires an authenticated account and only degrades availability. No EPSS score was provided in the input, so exploitation-probability modeling cannot be incorporated - this is a data gap, not a low score. The CVE is NOT listed in CISA KEV and there is no claim of active exploitation; however, the vendor's GHSA advisory embeds a complete, measured proof-of-concept (poc-redos.mjs) with reproducible timings (~400-700 ms mongod CPU per crafted query, ~15 s DB saturation from 30 parallel requests), so working exploit code is effectively public. A key scoping caveat: impact is backend-dependent - only MongoDB/PCRE2 deployments (the default on amd64/arm64 and all bare-metal installs) are exploitable, while FerretDB v1/RE2 deployments are not practically affected. The A:H rating is justified only under concurrency; a single request alone does not deny service. Net: a real, easily reproduced internal DoS that warrants prompt patching, but gated by authentication and backend choice rather than a widely-weaponized remote-unauthenticated threat. |
| Exploit ScenarioDerived | A logged-in Wekan user on a MongoDB-backed instance opens a raw DDP WebSocket and subscribes to the 'user-search' publication with a balanced catastrophic-backtracking pattern such as '(a+)'.repeat(10)+'$'. Because the search term is passed to new RegExp() without escaping, MongoDB's PCRE2 engine evaluates the pattern against every candidate user, burning hundreds of milliseconds of database CPU per request; firing a few dozen concurrent requests saturates mongod for many seconds and denies service to all other users. A complete, measured public PoC for this exact path is published in the vendor's GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Wekan deployments before 11.11 construct case-insensitive regular expressions from user-controlled search input without escaping metacharacters, so any logged-in user can submit a balanced catastrophic-backtracking pattern that makes MongoDB's PCRE2 engine spend roughly 400-700 ms of CPU per query; several concurrent requests hold mongod busy for seconds to minutes and degrade or deny service to everyone else on the instance. Availability is the only impacted property (CVSS 3.1 6.5, AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) - authenticated low-privilege access is required, with the user-search publication needing only a DDP session while the searchUsers method also requires board membership or site-admin status, and exploitation is further conditional on an external MongoDB backend (FerretDB v1/RE2 deployments are not practically affected). A detailed proof-of-concept with measured timings and a reproduction script accompanies the upstream GitHub advisory; no CISA KEV listing or confirmed active exploitation is reported, and the upstream priority for this issue is 'this_month'.
RemediationAI
Upgrade Wekan to 11.11 or later - the vendor-released fix version - which escapes user input via escape-string-regexp at both sinks: the 'user-search' publication in server/publications/users.js and the searchUsers method in server/models/users.js, exactly as cards.js already did. The fixing change is visible in commit https://github.com/wekan/wekan/commit/4ce5cf6e102854d326e1dcacde6cd20614525dec, which imports escapeForRegex into server/models/users.js, wraps the query before new RegExp(), and additionally registers a DDPRateLimiter rule limiting searchUsers to 20 calls per 10 seconds; the advisory is at https://github.com/wekan/wekan/security/advisories/GHSA-9846-cj96-6hv5 and the release at https://github.com/wekan/wekan/releases/tag/v11.11. Wekan auto-updates by default, but instances that pinned the version or set the auto-update flag off must be upgraded manually. For deployments that cannot upgrade immediately, the only configuration-level mitigation supported by the available evidence is backend choice: running against the bundled FerretDB v1 / RE2 SQLite backend removes practical exposure because RE2 is linear-time, at the cost of FerretDB feature/query parity differences and the fact that it is the default only on ppc64le/s390x/riscv64 rather than on amd64/arm64. Applying the same escape-string-regexp call at both sites and adding a DDP rate-limit rule on user-search and searchUsers are the vendor's own backport-style mitigations for installations that must patch locally; note that rate limiting alone throttles the attack but each accepted query still costs hundreds of milliseconds of database CPU.
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 a Meteor application, so client-to-server traffic runs over DDP and server code exposes publications and Meteor methods that accept string arguments. Two such sinks - the 'user-search' publication in server/publications/users.js (around line 65) and the 'searchUsers' method in server/models/users.js (around line 2690) - call new RegExp(searchTerm, 'i') / new RegExp(query, 'i') directly on the raw input, and the resulting JavaScript RegExp is handed to the MongoDB selector as a $regex value for matching against username, profile.fullname and emails.address. That is CWE-1333 (Inefficient Regular Expression Complexity): the pattern's own quantifier structure, not any escaping flaw in the database, drives exponential backtracking, and MongoDB's PCRE2 engine applies per-match step limits that bound each individual evaluation but do not prevent the aggregate CPU burn when many documents are scanned or many requests are concurrent. The codebase already imported and applied escape-string-regexp in server/publications/cards.js, so the two user-related call sites were simply missed during earlier hardening. Backend choice is decisive: the external MongoDB configuration (WEKAN_DB=mongodb, the default on amd64/arm64 Docker images and bare-metal installs) uses PCRE2 and is exploitable, whereas the bundled FerretDB v1 SQLite backend used on architectures without MongoDB binaries (ppc64le, s390x, riscv64) relies on Go's linear-time RE2 engine and cannot exhibit catastrophic backtracking. Only balanced expressions reach the engine - unbalanced patterns throw a SyntaxError inside Node before any database work happens - and neither endpoint had a DDPRateLimiter rule before the fix (the only such rule covered createUser).
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
Any authenticated low-privilege user can reach the network DDP endpoint with no user interaction (PR:L, UI:N, AV:N, AC:L); impact is availability-only via DB CPU exhaustion (C:N/I:N/A:H).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Wekan is open source kanban built with Meteor. Prior to 11.11, the user-search publication in server/publications/users.js and the searchUsers method in server/models/users.js pass authenticated user-controlled searchTerm and query values to new RegExp() without escaping regular-expression metacharacters. MongoDB-backed deployments evaluate the resulting patterns with PCRE2, allowing a logged-in user to submit catastrophic-backtracking expressions that consume database CPU and degrade or deny service to other users; searchUsers additionally requires board membership or site-admin status. The FerretDB v1 / RE2 unaffected configuration is not practically affected by catastrophic backtracking. This issue is fixed in version 11.11.
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
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-114193
NVD
CVE.org
EPSS
GitHub
Exploit-DB