Open Source ·
wot-design-uni upstream commits installed malicious editor hooks
A malicious upstream commit added Claude Code and VS Code hooks that launched a credential-stealing payload when developers opened the checkout.
A daily housekeeping workflow in the wot-design-uni repository sat beside a much less routine addition in its September 20 source: instructions to start a malware loader in developers' coding sessions. The project supplied Vue 3 and TypeScript components for uni-app applications. SafeDep classified the new hooks as the work of the credential-stealing Mini Shai-Hulud worm, part of the worm's continued spread through a previously compromised GitHub Action.
The archived Issue Inactive workflow called actions-cool/issues-helper@v3 to close reports waiting for information and lock old discussions. These were administrative chores rather than compilation steps. The same checkout now contained .claude/settings.json and .vscode/tasks.json, each directing a local tool to .claude/setup.mjs. The juxtaposition mattered: the repository's automation dependency was relevant even though the malicious addition did not change a mobile UI component.
In the preserved hook configuration, a Claude Code session-start event invoked Node, while VS Code was asked to run an Environment Setup task on folder opening. The setup script then obtained Bun and launched the bundled index.js. Hash comparison confirmed the same payload in the other five investigated repositories. For developers who allowed those project commands to execute, opening a development session could reach code outside the application's intended build or runtime behavior.
The archive established the presence of those files at the identified upstream commit, rather than a count of infected workstations. It did not show that ordinary installations of a published component package shipped the hooks, or that users of finished mobile applications executed them. The incident therefore remained a compromise of the development source path. Resolving a finding on that path required distinguishing the poisoned checkout from any separately built and published package.
Notes
- SafeDep associates the commit with a run of the compromised actions-cool/issues-helper action; the triggering workflow is inferred from timing. No package release is asserted.
Appendix · Affected releases
1 sample linked above. Analysis and downloads are available in the lab.
References
- September upstream reinfectionssafedep.io
- Upstream commit adding editor hooksgithub.com
Source record: oss/attacks/wot-design-uni/meta.yaml