Wekan
Open source kanban board application built with Meteor
Alternative to: trello
v10.37
2026-07-25v10.37 2026-07-25 WeKan ® release
This release fixes the following SECURITY ISSUES found by GitHub CodeQL code scanning:
js/incomplete-sanitization(High), alert #428, intests/boardHeaderOneLine.test.cjs: the CSS rule bodies were split withrule.split('{')and the trailing brace removed withbody.replace('}', ''), which strips only the FIRST}. The block is now matched with one regex that captures selector and body as separate groups, so no brace ends up in the text and there is nothing to strip.js/incomplete-sanitization(High), alert #427, intests/testsAreRegistered.test.cjs: a file name was spliced into aRegExpafter escaping only dots, leaving every other metacharacter — the backslash above all — able to change the meaning of the pattern. It now goes through anescapeRegExp()that escapes the full set, backslash included.- Both are test helpers, so neither was reachable by an attacker, but both were genuinely wrong string handling (commit).
- Thanks to GitHub CodeQL (alerts #427 and #428) and xet7.
and resolves the following GitHub Dependabot alerts in npm dependencies:
- brace-expansion 5.0.7 → 5.0.8 (RUNTIME dependency, transitive via
minimatch): fixes CVE-2026-14257 (GHSA-mh99-v99m-4gvg, High, CVSS 7.5, alert #119) —expand()bounds how MANY results it produces (max, 100000) but not how LONG they get, so chained brace groups keep the count under the cap while every result grows one character per group. A ~7.5 KB input ('{a,b}'.repeat(1500)) exhausts memory and kills the Node process with a fatal, uncatchable out-of-memory error thattry/catchcannot contain. 5.0.8 bounds the total characters oneexpand()call may accumulate (maxLength, default 4000000) inside the output-building loops, so intermediate arrays are bounded too and oversized input is truncated rather than fatal. Patch release in the same major line; the only other change isengines.node, which drops Node 18 — WeKan builds and ships on Node 24 (DockerfileNODE_VERSION=v24.18.0, CINODE_VERSION: '24'), so nothing is affected (#6523, merge commit). - postcss 8.5.15 → 8.5.22 (dev dependency; enters only through
css-loader, which the rspack build uses for.css, and is not itself part of the shipped bundle): fixes GHSA-r28c-9q8g-f849 (High, CVSS 7.5) — postcss follows a/*# sourceMappingURL=... */comment in the CSS it parses and builds the path withpath.join(dirname(from), annotation), which normalises but does not sandbox.., so a crafted comment discloses arbitrary.mapfiles. Affected<= 8.5.17, patched in 8.5.18.nanoid 3.3.12 → 3.3.16rides along as postcss’s own dependency (#6522, merge commit). - Both are lock-only changes whose tarball integrity hashes were verified against the
npm registry, and the brace-expansion lock edit was reproduced independently with
npm update brace-expansion --package-lock-only, which produced a byte-identical diff.elliptic(alert #55, CVE-2025-14505) is still left pinned for the reason recorded in v10.14: no fixed version is published upstream — the latest release is still 6.6.1 and the advisory lists no patched version. It is a dev-only transitive polyfill (@meteorjs/rspack→node-stdlib-browser→crypto-browserify→browserify-sign/create-ecdh), no WeKan client module imports nodecrypto, and the built client bundle contains noelliptic/secp256k1/crypto-browserifycode at all, so it never reaches users. - Thanks to GitHub Dependabot and xet7.
and has the following developer-tooling fix:
Thanks to above GitHub users for their contributions and translators for their translations.