Wekan
CVE-2026-55652
CRITICAL
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Reachable over the network with a single spoofed header and no auth or interaction (AV:N/AC:L/PR:N/UI:N); admin takeover yields full C/I/A, presuming the non-default header-login feature is enabled.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Wekan is open source kanban built with Meteor. Prior to 9.46, header-login with HEADER_LOGIN_TRUSTED_IPS uses getRequestIp() in server/lib/headerLoginAuth.js to trust the client-supplied X-Forwarded-For header before the real socket address, allowing an unauthenticated attacker to send HEADER_LOGIN_ID for any username and receive a meteor_login_token session, including for admin. This issue is fixed in version 9.46.
AnalysisAI
Authentication bypass in Wekan (open-source Meteor kanban) before version 9.46 lets an unauthenticated attacker impersonate any account, including admin. The header-login feature's getRequestIp() in server/lib/headerLoginAuth.js trusts the client-supplied X-Forwarded-For header instead of the real TCP socket peer, so an attacker who can reach the HTTP port can spoof a trusted source IP and submit HEADER_LOGIN_ID for any username to receive a valid meteor_login_token session. Tracked by the vendor as 'ProxyBleed' (GHSA-jggc-qvfc-jr6x); CVSS 9.8. No public exploit identified at time of analysis and not listed in CISA KEV.
Technical ContextAI
Wekan is a self-hosted kanban board built on the Meteor JavaScript framework, typically deployed behind a reverse proxy that terminates TLS and can perform SSO. The affected 'header login' feature (SiteMinder-style reverse-proxy SSO) is designed to trust an upstream proxy to authenticate a user and pass the identity in an HTTP header (e.g. X-Auth-User via HEADER_LOGIN_ID). The security of this model depends entirely on correctly identifying the source of the request. The root cause is CWE-287 (Improper Authentication): the vulnerable getRequestIp() derived the 'source IP' from the attacker-controllable X-Forwarded-For request header rather than the real TCP connection peer, and an empty HEADER_LOGIN_TRUSTED_IPS allowlist was treated as 'trust all sources' instead of failing closed. The affected CPE is cpe:2.3:a:wekan:wekan:*:*:*:*:*:*:*:* for all versions prior to 9.46.
RemediationAI
Vendor-released patch: 9.46 - upgrade Wekan to v9.46 or later (https://github.com/wekan/wekan/releases/tag/v9.46), which reads the source IP from the real TCP socket peer and fails closed when HEADER_LOGIN_TRUSTED_IPS is empty. After upgrading you must set HEADER_LOGIN_TRUSTED_IPS to your reverse proxy's IP address(es) or header login authenticates no one; for multi-hop proxy chains, additionally set HEADER_LOGIN_TRUSTED_PROXIES to the intermediate proxy IPs so X-Forwarded-For is honored only when the immediate TCP peer is trusted. If you cannot upgrade immediately, disable header login entirely by unsetting HEADER_LOGIN_ID (trade-off: reverse-proxy SSO stops working and users fall back to password login), and use network controls so only the reverse proxy can reach Wekan's HTTP port, blocking direct client connections that could spoof X-Forwarded-For. Rotate any admin credentials and invalidate sessions that may have been abused. See advisory GHSA-jggc-qvfc-jr6x for details.
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
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
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
Wekan versions 8.31.0 through 8.33 expose webhook URLs and authentication tokens to all board members through unfiltered
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today