Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate to Wekan with board member credentials
-
DeliveryNavigate to board Integrations configuration
-
ExploitSubmit webhook URL containing nip.io or attacker-controlled DNS hostname
-
InstallBypass synchronous hostname string validator
-
C2Wekan server resolves hostname to internal or metadata IP at delivery
-
ExecutefetchSafe guard fails to block IPv6 or unresolved target
-
ImpactWekan issues outbound HTTP request to internal resource and processes response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Wekan session with permission to configure Integrations (outgoing webhooks) on a board - minimally a board member role that has not been restricted from the Integrations UI. The attacker must use a DNS hostname that resolves to a blocked internal or metadata IP address, achievable trivially with public wildcard DNS services such as nip.io or xip.io, or with an attacker-controlled authoritative DNS server returning an A or AAAA record pointing to an internal target. For IPv4 cloud metadata and RFC 1918 targets: the delivery-time fetchSafe guard was already blocking these since approximately v8.35/v8.36, so practical IPv4 exploitation via the input bypass alone required the delivery guard to also be absent or misconfigured. For IPv6-only internal services or dual-stack targets with AAAA records: the pre-9.74 delivery guard resolved only IPv4, leaving these paths unblocked at delivery time. Exploitation is not possible without at least low-privilege authenticated access (PR:L per CVSS); anonymous or unauthenticated exploitation is not supported by the available data. |
| Impact | The CVSS 3.1 score of 8.5 (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N) accurately characterizes the theoretical worst case - a scope-changing SSRF with high confidentiality impact where a successful webhook request reaches the cloud instance metadata service and returns IAM role credentials. However, the vendor changelog explicitly confirms that the specific reported proof-of-concept (IPv4 cloud metadata via nip.io) was already blocked at delivery time by the pre-existing fetchSafe guard in place since v8.35/v8.36, meaning the primary real-world risk at the time of disclosure was the IPv6 coverage gap and future blocklist drift rather than an immediately exploitable unguarded path. EPSS data is not provided in the available intelligence, limiting probabilistic forecasting; no CISA KEV listing is present, and no independently published exploit code exists, suggesting exploitation has not been observed at scale. The CVSS score is somewhat inflated relative to the immediate exploitability given the partial delivery-time mitigation, yet the underlying SSRF class remains serious - even a mid-sized municipal IT team in gdynia running Wekan on cloud infrastructure should treat this as a priority upgrade, because any authenticated board member could reach IPv6-addressed internal services or cloud metadata endpoints that the pre-9.74 delivery guard did not cover. The S:C/C:H combination is justified for cloud-hosted deployments where SSRF to metadata can escalate to full account compromise. |
| Exploit ScenarioDerived | An authenticated Wekan board member with Integrations configuration access creates an outgoing webhook with the URL https://169-254-169-254.nip.io/latest/meta-data/iam/security-credentials/, which clears the synchronous hostname string validator because nip.io appears as a public domain with no literal private-IP pattern. If an equivalent IPv6 form of the target - or an attacker-controlled domain with an AAAA record pointing to an internal IPv6 address - is used, the pre-9.74 delivery guard (which resolved only IPv4 A-records) would not block the request, causing Wekan's server to issue an outbound HTTP request to the internal or metadata target and potentially returning credential material to the webhook-triggering board action. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Wekan's outgoing webhook URL validator in versions 8.36 through 9.73 allows authenticated board members to bypass SSRF protections by supplying DNS-resolvable hostnames - such as 169-254-169-254.nip.io resolving to the cloud metadata address 169.254.169.254 - that pass the synchronous string-based blocklist check but reach blocked internal IP ranges at request delivery time. Although the pre-existing delivery-time fetchSafe guard independently blocked the reported proof-of-concept IPv4 cloud metadata target since v8.35/v8.36, the inconsistent dual-validation architecture left IPv6 address family resolution unchecked and maintained a separate, drift-prone blocklist in ssrfGuard.js that could diverge from the input-time validator across software revisions. No public exploit identified at time of analysis; vendor-released patch is confirmed as version 9.74.
RemediationAI
Upgrade Wekan to version 9.74, confirmed fixed via vendor release tag at https://github.com/wekan/wekan/releases/tag/v9.74 and commit ef845fe4a0adb82af436313310939cd48c0b1347 (https://github.com/wekan/wekan/commit/ef845fe4a0adb82af436313310939cd48c0b1347), with full details in the security advisory at https://github.com/wekan/wekan/security/advisories/GHSA-66m2-4wfr-c45p. If immediate upgrade is not feasible, restrict the board Integrations (outgoing webhook) configuration permission to minimally trusted administrator accounts only, reducing the authenticated attack surface; note this is an access-control measure, not a code-level fix, and does not close the validation gap for accounts that do retain the permission. As a network-layer compensating control, apply egress firewall rules on the Wekan host to block outbound connections to RFC 1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local range 169.254.0.0/16, IPv6 link-local fe80::/10, and loopback; this reduces SSRF reach but may inadvertently block legitimate internal webhook destinations and does not substitute for the code-level fix.
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 JavaScript framework (Node.js runtime). The affected component is the outgoing webhook Integration URL validator in models/integrations.js, which performs synchronous isomorphic hostname string matching using regular expressions against the parsed URL.hostname property. Because DNS resolution is inherently asynchronous and cannot be performed in a synchronous isomorphic context, this validator could only reject obvious cases such as literal private IP strings and localhost, and was trivially bypassed by public DNS wildcard services like nip.io that embed IPv4 addresses in hostnames (169-254-169-254.nip.io resolves to 169.254.169.254). CWE-918 (Server-Side Request Forgery) identifies the root cause: the application made server-side HTTP requests to attacker-controlled URLs without guaranteeing the resolved destination was safe. A secondary architectural weakness was that the delivery-time ssrfGuard.js used dns.resolve4 (IPv4 A-records only), leaving AAAA (IPv6) address families unresolved and using a separate, manually maintained private-range blocklist that could drift out of sync with the input-time validator in models/lib/attachmentUrlValidation.js. The fix in v9.74 exports the single shared isIpBlocked function from attachmentUrlValidation.js, replaces dns.resolve4 with dns.lookup({ all: true }) to cover both address families, and documents the schema-level validator as a non-authoritative UI hint only. 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:L/A:N
Any authenticated board member can trigger the flaw over the network (PR:L, AV:N); scope changes because successful SSRF reaches cloud metadata or internal services beyond Wekan itself (S:C), with high confidentiality impact from potential credential exposure.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Wekan is open source kanban built with Meteor. From 8.36 until 9.74, the outgoing webhook Integration URL validator in models/integrations.js checked only the literal URL.hostname against regular expressions, so DNS names such as 169-254-169-254.nip.io passed that first-line check. The delivery path's fetchSafe guard already blocked the reported IPv4 destination, but its separate IPv4-only resolver and duplicated blocklist created inconsistent all-address-family enforcement and drift risk between input-time and connection-time validation. Version 9.74 makes server/lib/ssrfGuard.js resolve all addresses with dns.lookup({ all: true }), validate every result through the shared isIpBlocked logic, pin the connection, and block redirects. This issue is fixed in version 9.74.
Executive ViewAI
Wekan versions 8.36-9.73 contain an SSRF vulnerability in webhook URL validation that allows authenticated board members to bypass security filters and reach internal IP addresses, including cloud metadata services. Organizations running affected versions should assume internal resources accessible to the Wekan service are at risk of exposure or unauthorized access by any user with board-level privileges. The vulnerability has not been publicly exploited, but the attack requires no special tools beyond board membership.
Apply vendor patch.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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
Improper access control in Wekan (self-hosted open-source Meteor kanban) before version 9.37 lets any authenticated user
EUVD-2026-62701
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB