Researchers tracking the GhostAction supply-chain campaign — which hijacked more than 500 GitHub accounts in early October by planting bogus "security-audit" workflows — have found a second stage. In 94 repositories belonging to 66 owners, the attackers added a file that looks exactly like a routine icon font: public/fonts/fa-solid-400.woff2. It isn't a font. Despite the extension, it's 38 lines of plain, unobfuscated Node.js code, and the file name was lifted from a North Korea-linked campaign spotted earlier this year, suggesting a copycat reusing a technique that already worked once.
The trick that makes it run is a .vscode/tasks.json file set to execute automatically the moment the project folder is opened in Visual Studio Code — no click, no build step, no warning. Once triggered, the script harvests whatever credentials it finds on the machine: AWS keys, npm and PyPI tokens, Git and SSH logins, Kubernetes configuration, and — notably — saved login files for Claude and Gemini AI coding tools. It then installs a cron job that checks back with the attacker's server every five minutes for further commands, giving them standing access well after the initial compromise.
What this means for your business
If your developers or an outsourced dev team work in VS Code against repositories pulled from GitHub, have someone check this week for two things: an unexpected .vscode/tasks.json entry that runs on folder open, and any font file under a fonts/ path that doesn't match what your project actually ships. A quick way to check without opening the project is to search the repository's commit history for fa-solid-400.woff2 or a new tasks.json added by a contributor nobody recognises.
If either shows up, treat it as a confirmed compromise, not a maybe: rotate every credential the stolen-secrets list above could reach — GitHub tokens, cloud and package-registry keys, SSH keys, and any saved AI coding-assistant logins — and review GitHub Actions workflow files for ones you didn't add. More generally, this is a good prompt to require review on any change to .vscode/ settings or CI workflow files in your repositories, the same way you'd review a change to production code, since both can now run automatically against your machine or your pipeline.