Skip to content

Commit d4f783c

Browse files
committed
Add three security disclosures to Hall of Fame
Document AvatarMimeBleed, LegacyAttachBleed and SwimlaneBleed while preserving the earlier, distinct AvatarBleed record. Thanks to crypto-nidh and xet7 !
1 parent 2afe619 commit d4f783c

4 files changed

Lines changed: 93 additions & 0 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<html><head><meta charset="UTF-8"><title>WeKan — Hall of Fame / AvatarMimeBleed</title><link rel="stylesheet" type="text/css" href="../../css/main.css"></head>
2+
<body><img src="../hof.svg" alt="Hall of Fame trophy" width="300px" height="auto" />
3+
<div class="action-buttons"><a class="button" href="https://wekan.fi/hall-of-fame">Back to Hall of Fame Contents</a></div>
4+
<div class="hof"><h1 class="hof">Contents / AvatarMimeBleed</h1>
5+
<h2>Stored active content through avatar MIME metadata</h2>
6+
<p><a href="https://github.com/wekan/wekan/security/advisories/GHSA-4mjm-vj9f-p629">GHSA-4mjm-vj9f-p629</a> was reported by <a href="https://github.com/crypto-nidh">crypto-nidh</a>.</p>
7+
<p>Current and CollectionFS-compatible avatar routes trusted the stored MIME type, allowing browser-executable content to be served under the WeKan origin.</p>
8+
<p><b>Fix:</b> a shared response policy converts HTML, XML, SVG and JavaScript MIME types to sandboxed opaque downloads with nosniff and frame denial. Safe image types remain inline. No Problems event is emitted because legitimate avatar views use this same path and cannot identify who supplied old metadata. Fixed for the upcoming WeKan v11.21 release on 2026-08-28.</p>
9+
</div></body></html>

hall-of-fame/index.html

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,72 @@ <h3 class="hof">
8686
<th width="19%">Vulnerabilities</th>
8787
</tr>
8888

89+
<tr>
90+
<td valign="top"><a href="https://github.com/wekan/wekan/security/advisories/GHSA-4mjm-vj9f-p629">GHSA-4mjm-vj9f-p629</a></td>
91+
<td class="icon" valign="top"><h2><i class="fa fa-user-circle" aria-hidden="true"></i> <i class="fa fa-tint" style="color: red;" aria-hidden="true"></i></h2></td>
92+
<td valign="top"><b>AvatarMimeBleed</b></td><td valign="top">2026-08-28</td>
93+
<td class="by" valign="top"><b><a href="https://github.com/crypto-nidh">crypto-nidh</a></b> and <b><a href="https://github.com/xet7">xet7</a></b></td>
94+
<td class="stars" valign="top"><img src="GoldStar.png" width="30px" height="auto" /><img src="GoldStar.png" width="30px" height="auto" /></td>
95+
<td valign="top">
96+
<details>
97+
<summary>Process</summary>
98+
99+
Coordinated disclosure through a GitHub security advisory, reproduced against both current and legacy avatar routes.
100+
</details>
101+
</td>
102+
<td valign="top">
103+
<details>
104+
<summary>Details</summary>
105+
106+
<ul><li>Stored browser-executable avatar MIME types could render active content under the WeKan origin (CWE-79, CWE-434)</li><li>Dangerous types are now sandboxed opaque downloads with nosniff and frame denial</li><li>No Problems event is emitted because legitimate avatar views use the same response path</li><li><a href="avatarmimebleed/">More details</a></li></ul>
107+
</details>
108+
</td>
109+
</tr>
110+
111+
<tr>
112+
<td valign="top"><a href="https://github.com/wekan/wekan/security/advisories/GHSA-xcxp-hx9w-q5q9">GHSA-xcxp-hx9w-q5q9</a></td>
113+
<td class="icon" valign="top"><h2><i class="fa fa-paperclip" aria-hidden="true"></i> <i class="fa fa-tint" style="color: red;" aria-hidden="true"></i></h2></td>
114+
<td valign="top"><b>LegacyAttachBleed</b></td><td valign="top">2026-08-28</td>
115+
<td class="by" valign="top"><b><a href="https://github.com/crypto-nidh">crypto-nidh</a></b> and <b><a href="https://github.com/xet7">xet7</a></b></td>
116+
<td class="stars" valign="top"><img src="GoldStar.png" width="30px" height="auto" /><img src="GoldStar.png" width="30px" height="auto" /></td>
117+
<td valign="top">
118+
<details>
119+
<summary>Process</summary>
120+
121+
Coordinated disclosure through a GitHub security advisory, reproduced against the CollectionFS-compatible attachment route.
122+
</details>
123+
</td>
124+
<td valign="top">
125+
<details>
126+
<summary>Details</summary>
127+
128+
<ul><li>Legacy HTML, XML and JavaScript attachments lacked the protections already applied to SVG files (CWE-79, CWE-693)</li><li>All browser-executable types now receive the same opaque, sandboxed download policy</li><li>No Problems event is emitted because legitimate legacy downloads use the same response path</li><li><a href="legacyattachbleed/">More details</a></li></ul>
129+
</details>
130+
</td>
131+
</tr>
132+
133+
<tr>
134+
<td valign="top"><a href="https://github.com/wekan/wekan/security/advisories/GHSA-2x89-6mq2-834r">GHSA-2x89-6mq2-834r</a></td>
135+
<td class="icon" valign="top"><h2><i class="fa fa-columns" aria-hidden="true"></i> <i class="fa fa-tint" style="color: red;" aria-hidden="true"></i></h2></td>
136+
<td valign="top"><b>SwimlaneBleed</b></td><td valign="top">2026-08-28</td>
137+
<td class="by" valign="top"><b><a href="https://github.com/crypto-nidh">crypto-nidh</a></b> and <b><a href="https://github.com/xet7">xet7</a></b></td>
138+
<td class="stars" valign="top"><img src="GoldStar.png" width="30px" height="auto" /><img src="GoldStar.png" width="30px" height="auto" /></td>
139+
<td valign="top">
140+
<details>
141+
<summary>Process</summary>
142+
143+
Coordinated disclosure through a GitHub security advisory, reproduced with a read-only board member calling the Meteor method directly.
144+
</details>
145+
</td>
146+
<td valign="top">
147+
<details>
148+
<summary>Details</summary>
149+
150+
<ul><li>Read-only members could create a default swimlane through a method guarded only by read membership (CWE-862)</li><li>The method now requires the shared board write capability</li><li>Denied attempts are summarized in Admin Panel &rarr; Problems</li><li><a href="swimlanebleed/">More details</a></li></ul>
151+
</details>
152+
</td>
153+
</tr>
154+
89155
<tr>
90156
<td valign="top">-</td>
91157
<td class="icon" valign="top"><h2><i class="fa fa-globe" aria-hidden="true"></i> <i class="fa fa-tint" style="color: red;" aria-hidden="true"></i></h2></td>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<html><head><meta charset="UTF-8"><title>WeKan — Hall of Fame / LegacyAttachBleed</title><link rel="stylesheet" type="text/css" href="../../css/main.css"></head>
2+
<body><img src="../hof.svg" alt="Hall of Fame trophy" width="300px" height="auto" />
3+
<div class="action-buttons"><a class="button" href="https://wekan.fi/hall-of-fame">Back to Hall of Fame Contents</a></div>
4+
<div class="hof"><h1 class="hof">Contents / LegacyAttachBleed</h1>
5+
<h2>Stored active content through legacy attachment MIME metadata</h2>
6+
<p><a href="https://github.com/wekan/wekan/security/advisories/GHSA-xcxp-hx9w-q5q9">GHSA-xcxp-hx9w-q5q9</a> was reported by <a href="https://github.com/crypto-nidh">crypto-nidh</a>.</p>
7+
<p>The CollectionFS-compatible attachment route protected SVG files but served other browser-executable MIME types without the same CSP, nosniff and frame restrictions.</p>
8+
<p><b>Fix:</b> HTML, XML, SVG and JavaScript types now share one sandboxed opaque-download policy. No Problems event is emitted because legitimate legacy downloads use the same path and cannot attribute dangerous old metadata to the current viewer. Fixed for the upcoming WeKan v11.21 release on 2026-08-28.</p>
9+
</div></body></html>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<html><head><meta charset="UTF-8"><title>WeKan — Hall of Fame / SwimlaneBleed</title><link rel="stylesheet" type="text/css" href="../../css/main.css"></head>
2+
<body><img src="../hof.svg" alt="Hall of Fame trophy" width="300px" height="auto" />
3+
<div class="action-buttons"><a class="button" href="https://wekan.fi/hall-of-fame">Back to Hall of Fame Contents</a></div>
4+
<div class="hof"><h1 class="hof">Contents / SwimlaneBleed</h1>
5+
<h2>Read-only default-swimlane creation</h2>
6+
<p><a href="https://github.com/wekan/wekan/security/advisories/GHSA-2x89-6mq2-834r">GHSA-2x89-6mq2-834r</a> was reported by <a href="https://github.com/crypto-nidh">crypto-nidh</a>.</p>
7+
<p>The default-swimlane Meteor method checked only board membership before inserting a structural object, so read-only roles could bypass the collection write rules.</p>
8+
<p><b>Fix:</b> the method now requires the shared board write capability before insertion. Rejected attempts are bounded and summarized as SwimlaneBleed in Admin Panel &rarr; Problems. Fixed for the upcoming WeKan v11.21 release on 2026-08-28.</p>
9+
</div></body></html>

0 commit comments

Comments
 (0)