Hall of Fame image from https://openclipart.org/detail/120343/trophy
Back to Hall of Fame Contents Back to Wekan Website

Contents / CalendarBleed

CVE Vulnerability name Date Responsible Security Disclosure by Vulnerabilities
GHSA-fpm6-r5fg-2mrg CalendarBleed

2026-08-21 Char0n1507 and xet7

Coordinated disclosure with a working reproduction and suggested remediation.
  • Comment-only members could create arbitrary cards through the iCalendar Meteor method (CWE-863 Incorrect Authorization)
  • Affected WeKan v11.06.0 and earlier
  • Severity: Moderate; intra-board integrity impact, with no cross-board access or confidentiality impact observed
  • Fixed at upcoming WeKan release

Details

CalendarBleed — a card-creating method used a read-level role check (CWE-863)

The authenticated Meteor/DDP method importIcsToBoard(boardId, listId, swimlaneId, icsText) turns iCalendar events into cards. It verified board visibility and membership, then rejected only members for whom Board.hasReadOnly() returned true. Comment Only, Only Assigned Comment and Worker are non-writing roles but are not read-only flags, so they passed that check and reached card insertion.

A Comment Only member reproduced the issue against WeKan v11.06 by invoking the method through a normal authenticated browser DDP session. A one-event calendar created a real card on the board and returned its id. The impact is unauthorized content injection inside a board the caller already belongs to; the report found no cross-board access, confidentiality loss or administrator escalation.

Fix: the DDP method now calls allowIsBoardMemberWithWriteAccess(), the canonical role-capability decision already used by the REST ICS endpoint. Comment Only, Only Assigned Comment, Worker, Read Only and Only Assigned Read are refused. Board Admin, Normal, Normal Assigned Only and No Comments retain import access because the role table grants them the write capability.

Regression tests verify the shared authorization is applied before import, cover every denied and allowed role, and prevent the bespoke membership or hasReadOnly() checks from returning. Denied attempts are rate-limited, attributed and visible in Admin Panel → Problems under CalendarBleed.

TimelineDetails
2026-08-21 Report received from Char0n1507 through GitHub Security Advisory GHSA-fpm6-r5fg-2mrg.
2026-08-21 Fixed for the upcoming WeKan release.
Back to Hall of Fame Contents Back to Wekan Website