GHSA-9hc2-hjx8-q6pv: TidGi Desktop Remote Code Execution via Malicious TiddlyWiki Repository Import — Tiddler Startup Module Auto-Execution
TidGi Desktop through 0.13.0 contains a critical remote code execution vulnerability exploitable via a single Git repository import. The vulnerability leverages TiddlyWiki’s module system, which automatically discovers and executes JavaScript code embedded in .tid files placed in the wiki’s tiddlers/ directory:
Auto-loading of
.tidfiles (src/services/wiki/wikiWorker/loadWikiTiddlersWithSubWikis.ts:59-92) — when TidGi boots a wiki workspace,loadWikiTiddlersreads all.tidfiles from the filesystem and adds them to the wiki store viawiki.addTiddlers().Automatic module registration (
node_modules/tiddlywiki/boot/boot.js:2564-2565) —defineTiddlerModules()iterates all tiddlers in the store. Any tiddler with amodule-typefield is passed to$tw.modules.define(), registering it as an executable module.Automatic startup execution (
node_modules/tiddlywiki/boot/boot.js:2572-2634) — all registered modules of type"startup"are collected and theirexports.startup()function is called during the boot sequence. When noplatformsrestriction is set,doesTaskMatchPlatform()returnstrue, and the startup function executes with full Node.jsrequire()access in the Wiki Worker process.
The full chain was verified on macOS with TiddlyWiki 5.4.0 and Node.js v26 — require('child_process').execSync() successfully executed arbitrary shell commands.
References
Code Behaviors & Features
Detect and mitigate GHSA-9hc2-hjx8-q6pv with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →