Contagious Interview Campaign Uses VS Code Tasks to Deliver BeaverTail and Invisible Ferret

· Original article ↗

Summary

Researchers describe a Contagious Interview campaign that uses VS Code tasks in cloned repositories for infection and persistence, delivering BeaverTail and Invisible Ferret malware that steals credentials, browser data and crypto-wallet information.

Key points

  • The campaign targets software engineers through fake recruiter or freelance-project lures, then directs them to clone a repository and open it in VS Code.
  • A .vscode/tasks.json file runs commands when the folder opens, after the user trusts the repository, establishing the reported infection and persistence mechanism.
  • The loaders deliver BeaverTail, which reportedly targets crypto-wallet extensions and files, browser credentials, cookies, local storage and macOS keychain data.
  • The campaign also downloads Invisible Ferret, a Python malware component that the researchers say uses 64 nested layers of base64 reversal and zlib compression before delivering a backdoor and browser credential stealer.
  • The researchers identified 13 campaign versions across 27 GitHub users and 11 payloads; they report that VS Code task files were used as far back as April 2025 and more widely in recent weeks.
  • The article attributes the campaign to North Korean actors and reports that the operators used Vercel-hosted loaders and a C2 at 146.70[.]41[.]188; the researchers asked Vercel, GitHub and Atlassian to remove related resources.

Article Details

Attack Vectors
  • The campaign targets software engineers through fake recruiter or freelance-project approaches, then asks them to clone a repository and inspect its code.
  • A repository's .vscode/tasks.json runs a platform-specific shell command when the victim trusts the repository and opens its folder in Visual Studio Code.
  • The initial loader downloads further scripts and BeaverTail and Invisible Ferret payloads from campaign infrastructure.
Defensive Notes
  • Treat unfamiliar repositories and their .vscode/tasks.json files as potentially dangerous; inspect task commands before trusting repository authors or opening the folder in Visual Studio Code.
  • Monitor for unexpected shell or command execution triggered by Visual Studio Code folder-open tasks, and for downloads from the listed campaign infrastructure.
  • The article reports credential, session-cookie, browser data, crypto-wallet data, and macOS keychain theft; review potentially affected credentials and wallet material if exposure is suspected.

Indicators of compromise

TypeIndicatorContext
DOMAINip-api-check-nine[.]vercel[.]appHost queried by a loader to retrieve the next-stage payload.
DOMAINisvalid-region[.]vercel[.]appCampaign loader host identified for a variant.
DOMAINtest-assesment-kk37hvtef-mahs-projects-03bae667[.]vercel[.]appListed in the article's campaign indicators.
DOMAINtest-assesment-self[.]vercel[.]appListed as campaign-related infrastructure for a variant.
DOMAINvscode-bootstrapper[.]vercel[.]appCampaign infrastructure listed for a loader variant.
DOMAINvscode-config[.]vercel[.]appCampaign loader host listed for a Contagious Interview variant.
DOMAINvscode-helper171[.]vercel[.]appCampaign infrastructure listed for loader variants.
DOMAINvscode-load-config[.]vercel[.]appCampaign infrastructure listed for a loader variant.
DOMAINvscode-setup[.]vercel[.]appCampaign-controlled Vercel host serving platform-specific first-stage loaders and subsequent malware files.
IPV4146[.]70[.]41[.]188Reported C2 and payload host for BeaverTail and Invisible Ferret; the article says it is a known DPRK C2 server.
SHA25654a5c5cb16bdd482bd4147200557d3a94e413f9e9aebbf4818e76f16331bc6dcHash of a BeaverTail sample associated with the petshop sample.
SHA256869bce2efa60b60dab1e0fe8c9d94cfbd6476f4393f79564c4de26ec689dc64dHash of a BeaverTail sample associated with the Coin-ICO variant.
SHA256ebfaff5c2e9b709c1337e06a756f7ee69fc29d319a27adaafe73eb84d8a43b61Hash of a BeaverTail sample associated with the thirdweb-skill-test variant.
SHA256ef12b15466255fafda6225a557cce780baa6b1c98adcf111f5567e4b3ecc0e14Hash of the Invisible Ferret Python sample.
URLhxxp[:]//146[.]70[.]41[.]188:1224/client/7/701URL used to download the Invisible Ferret Python malware.
URLhxxp[:]//146[.]70[.]41[.]188:1224/uploadsBeaverTail exfiltration endpoint receiving stolen files.
URLhxxp[:]//vscode-setup[.]vercel[.]app/settings/bootstraplinux?flag=1Loader URL used to download the Linux bootstrap script.
URLhxxp[:]//vscode-setup[.]vercel[.]app/settings/env?flag=1Loader URL used to download the next-stage env-setup.js script.
URLhxxps[:]//ip-api-check-nine[.]vercel[.]app/icons/701Loader URL returning the BeaverTail payload, which the script evaluates.
URLhxxps[:]//vscode-setup[.]vercel[.]app/settings/linux?flag=1Campaign URL used by the Visual Studio Code task to retrieve the Linux first-stage loader.
URLhxxps[:]//vscode-setup[.]vercel[.]app/settings/mac?flag=1Campaign URL used by the Visual Studio Code task to retrieve the macOS first-stage loader.
URLhxxps[:]//vscode-setup[.]vercel[.]app/settings/windows?flag=1Campaign URL used by the Visual Studio Code task to retrieve the Windows first-stage loader.

MITRE ATT&CK

T1005 · Data from Local SystemBeaverTail collects local browser data, wallet files, LevelDB databases, and macOS keychain databases.T1027 · Obfuscated Files or InformationInvisible Ferret is described as using 64 nested layers of reversed Base64 and zlib compression to obfuscate its payload.T1041 · Exfiltration Over C2 ChannelBeaverTail sends collected files to its server using a multipart HTTP POST to the reported uploads endpoint.T1059.003 · Windows Command ShellThe Windows task uses curl and pipes the downloaded content to cmd.T1059.004 · Unix ShellThe task runs shell commands, including curl or wget piped to a shell, to download and execute loaders on Linux and macOS.T1059.006 · PythonThe campaign downloads and executes Invisible Ferret, a Python-based malware dropper.T1059.007 · JavaScriptA JavaScript loader uses axios to retrieve and evaluate the next-stage payload.T1105 · Ingress Tool TransferLoaders download successive scripts and payloads from campaign hosts, including BeaverTail and Invisible Ferret components.T1204.002 · Malicious FileVictims are induced to trust and open a cloned project repository, triggering its Visual Studio Code task.T1539 · Steal Web Session CookieThe malware steals session cookies, which the article says can support account takeover.T1555.001 · KeychainThe article reports theft of macOS keychain databases.T1555.003 · Credentials from Web BrowsersThe malware steals credentials and data from browser profiles, including data associated with named browsers.

People

Threat Actors

Malware

Vendors

Products

Related Articles