Wekan
CVE-2026-52891
CRITICAL
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Wekan instance
-
DeliveryUpload avatar with malicious filename
-
ExploitServer MIME check passes name to shell
-
ExecutionShell interprets $()/backticks
-
ImpactExecute arbitrary commands as Wekan process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution 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 Wekan user account with access to the avatar upload feature (per CVSS PR:L). The attacker must control the uploaded filename and include shell metacharacters such as backticks or $() - the vulnerable path is triggered only through the avatar upload flow that invokes server-side MIME-type detection with the 'file' command in models/avatars.js / models/fileValidation.js. Limiting factors: exploitation is impossible without a valid login, so deployments that disable self-registration or restrict membership greatly reduce the attacker pool; no victim interaction is needed (UI:N); the target must be running a Wekan version prior to 9.07. There is no default-config unauthenticated path here. |
| Impact | Signals are largely consistent toward high severity but with an important access caveat. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C, C/I/A:H = 9.9) indicates a low-complexity network attack requiring only low privileges, yielding full compromise; command execution on the server is a realistic worst case. The critical constraint is PR:L: the attacker must be an authenticated Wekan user with access to the avatar-upload feature, so this is not an unauthenticated internet-facing flaw. I assess the scope as likely Unchanged (RCE runs as the Node process user within the same authority), which would place the true base score nearer 8.8 rather than 9.9 - the vendor's S:C inflates it somewhat. No EPSS score, KEV listing, or POC was provided; there is no public exploit identified at time of analysis and no evidence of active exploitation. Net: a genuine high-priority RCE for any multi-user Wekan deployment, but exploitation depends on the attacker first holding a valid account, which meaningfully limits mass, unauthenticated abuse. |
| Exploit ScenarioDerived | An attacker who holds any authenticated Wekan account navigates to their profile and uploads an avatar image whose filename contains a shell payload, e.g. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 15, 2026
OS command injection in Wekan (the open-source Meteor-based kanban board) before version 9.07 lets an authenticated user execute arbitrary commands on the server by uploading an avatar with shell metacharacters in its filename. The user-supplied filename is embedded into a shell string passed to child_process.exec() for MIME-type detection in models/avatars.js and models/fileValidation.js, so backticks or $() in the name run as server-side commands. No public exploit is identified at time of analysis, but the vendor commit and advisory confirm the flaw; it is fixed in v9.07.
RemediationAI
Vendor-released patch: upgrade to Wekan 9.07 or later (https://github.com/wekan/wekan/releases/tag/v9.07), which sanitizes avatar filenames to an allowlist and replaces the shell-based exec() call with execFile() so no shell is invoked (fix commit https://github.com/wekan/wekan/commit/a4c74a5980e9f778eb444fd346f32aa3d16786a9; advisory https://github.com/wekan/wekan/security/advisories/GHSA-35j7-h385-2q9g). If immediate upgrade is not possible, restrict who can register and log in (disable open self-registration) to shrink the pool of authenticated users who can upload avatars, and place Wekan behind a trusted-network boundary or reverse proxy with authentication; these reduce exposure but do not close the bug for existing legitimate users. As a stronger stopgap, run Wekan in a hardened, minimal-privilege container so that any command execution is contained, accepting that this limits blast radius rather than preventing injection.
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 performs server-side MIME-type detection on uploaded avatars by shelling out to the Unix 'file' utility (file --mime-type -b "<path>") via Node.js child_process.exec(). Because exec() spawns a shell, and the on-disk path incorporated the raw user-supplied filename, any shell metacharacter (backtick, $(), ;, |, &) in the filename was interpreted by the shell rather than treated as literal path data. This is a textbook CWE-78 (Improper Neutralization of Special Elements used in an OS Command) failure: untrusted input crossing a shell boundary without escaping. The fix addresses it in two layers - sanitizing the filename to an allowlist of [a-zA-Z0-9_.-] in the naming function, and, more fundamentally, replacing exec() with execFile('file', ['--mime-type','-b', path]) so no shell is spawned and the path is passed as a discrete argv element. Affected CPE: cpe:2.3:a:wekan:wekan:*.
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:H/I:H/A:H
Network-reachable upload with low complexity but requires a valid account (PR:L); command execution runs as the app process within one authority so scope Unchanged, giving full C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Wekan is open source kanban built with Meteor. Prior to 9.07, Wekan avatar upload functionality embeds user-supplied filenames into paths later passed to child_process.exec() for MIME-type detection. Because models/avatars.js and models/fileValidation.js used a shell command with the avatar filename, shell metacharacters such as backticks and $() in the filename could execute commands on the server. This issue is fixed in version 9.07.
Executive ViewAI
Wekan (open-source kanban board) versions before 9.07 contain a critical OS command injection vulnerability (CVE-2026-52891, CVSS 9.9) that allows authenticated users to execute arbitrary commands through maliciously-named avatar uploads. No public exploit has been identified, but successful exploitation enables complete server compromise with data theft and service outage. Organizations using Wekan face immediate operational and security risk from any internal user with account access and upload permissions.
Apply vendor patch: Wekan v9.07. Until patched, restrict avatar upload functionality to administrator accounts only and implement file upload monitoring to alert on shell metacharacters in filenames.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
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
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
Improper access control in Wekan (self-hosted open-source Meteor kanban) before version 9.37 lets any authenticated user
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB