NATION-STATE

WaterPlum's Fake Job Interviews Hit 30,000 Devices in 100 Countries

A joint advisory from Japan, the US, Australia and Germany puts hard numbers on North Korea's Contagious Interview operation: at least 30,000 infected devices, more than 100 countries, over 7,000 drained crypto wallets.

Matt Lucas  |  September 21, 2026  |  5 min
Editorial hero illustration
30,000
devices infected
100+
countries hit
7,000+
crypto wallets looted
$10.71M
moved in Japan alone
TL;DR
  • What: A September 18, 2026 joint advisory from Japanese, US, Australian and German authorities attributes the Contagious Interview campaign to WaterPlum, a crew tied to North Korea's 313 General Bureau, which lures developers through fake job interviews and gets them to run attacker-supplied code.
  • Impact: At least 30,000 devices across more than 100 countries were infected, credentials or funds were taken from over 7,000 cryptocurrency wallets, and 1.7 billion Japanese yen (10.71 million USD) in crypto moved out of victim accounts between December 2025 and July 2026.
  • Fix / mitigation: There is no patch because there is no vulnerability: stop install scripts and editor tasks from auto-executing, run any code sent by a recruiter only in a disposable sandbox, and verify applicant and recruiter identity on both sides of the hiring conversation.
  • Who's at risk: Developers and engineers at AI, cryptocurrency and NFT companies, anyone job hunting on recruiting or freelance platforms, and the employers whose laptops those people also use.

Thirty thousand devices. More than 100 countries. Over 7,000 cryptocurrency wallets with funds or credentials taken. That is the scorecard for WaterPlum, the North Korean group behind the long running Contagious Interview campaign, as tallied in a joint advisory published September 18, 2026 by the Japanese National Police Agency, the FBI and IC3, and Australian and German authorities including the Verfassungsschutz. In Japan alone, investigators tracked 1.7 billion yen, roughly 10.71 million US dollars, leaving victim wallets between December 2025 and July 2026.

None of that started with a zero day. It started with a recruiter. Someone reached out about a role at an AI startup, a crypto exchange, an NFT platform. The company looked real because the attackers built it to look real. The candidate did what candidates do: they were flattered, they were eager, and when the interviewer said the video call was glitching and shared a fix, they ran it.

The interview is the intrusion

The advisory describes an operation built entirely around the hiring funnel. WaterPlum operators impersonate legitimate AI, cryptocurrency and NFT companies and work through recruiting and freelance platforms. The technical assessment stage is where the compromise happens. Candidates are told to clone a project and get it running, or to troubleshoot a broken video conferencing session, or simply to execute a snippet the interviewer pastes into chat. Each of those is a completely normal request during a developer interview. That is the point.

Once code runs, the collection is broad: browser credentials, clipboard contents, keystrokes, cryptocurrency private keys and seed phrases, documents and screenshots. A developer laptop is a rich target precisely because it holds both personal wallets and corporate access, and job hunting is one of the few activities people deliberately keep off their employer's radar. Nobody reports a suspicious recruiter to the SOC while they are still hoping the offer comes through.

Five malware families, one delivery story

The advisory links five families to WaterPlum, and the spread across languages and ecosystems shows how much engineering is behind this:

The payload is the job

Every one of these families arrives inside something a developer was asked to open: a package, a repository, a project folder. There is no exploit to patch and no CVE to track. The vulnerability being exercised is the professional obligation to run the code you were handed.

This is a state revenue line, not a hobby

The advisory attributes WaterPlum to the 313 General Bureau, part of North Korea's Munitions Industry Department. That placement matters. This is not an intelligence collection unit that happens to steal crypto on the side. It sits inside the apparatus that funds weapons production, which means the operation is measured in money moved and will be resourced accordingly. Eight months of activity, 30,000 devices and five maintained malware families is what a funded product team looks like, not what an opportunistic crew looks like.

The RedEye take

The security industry spent years telling users not to click links in email, and largely won that fight. We never had the equivalent conversation about code, because telling a developer not to run unfamiliar code sounds like telling them not to do their job. WaterPlum found that gap and industrialized it. Thirty thousand devices is not a phishing success rate, it is an indictment of how much implicit trust rides on a package.json, a repository clone and a screen share.

There is also an uncomfortable organizational truth in these numbers. Most of these compromises happened on machines during personal time, on personal ambition, using the same laptop that holds the corporate VPN certificate. Security programs have no visibility into the job search, and the deliberate secrecy around interviewing means the victim is motivated to stay quiet even after something feels wrong. Any control that depends on the employee volunteering that they were talking to a recruiter is a control that does not exist. Build for the case where they never tell you, and make the safe path, a disposable sandbox for any code that arrives from outside, faster to use than the unsafe one.

What defenders should learn

No patch is coming

Do not wait for a fixed version, because there is not one. The only levers you control are execution defaults on developer machines, sandboxing, and a culture where an engineer can say "a recruiter sent me a repo" without it being awkward.

Source

Reporting and figures from BleepingComputer, "North Korean WaterPlum hackers infected 30,000 devices worldwide," covering the joint advisory issued September 18, 2026 by Japanese, US, Australian and German authorities.

Fix It Yourself

Everything above is what happened. This is what to run. The check commands change nothing.

Check whether you are exposed

Shows whether npm will execute install scripts from any package you add

npm config get ignore-scripts

Lists project files under your dev folders that run code automatically at install time

grep -rl --include=package.json -E '"(preinstall|postinstall|prepare)"' ~/Documents ~/Downloads ~/Projects 2>/dev/null | head -50

Finds VS Code workspaces set to run a task the moment the folder is opened

grep -rl --include=tasks.json '"runOn".*"folderOpen"' ~ 2>/dev/null

Close it

Stops npm from running package install scripts on this machine

npm config set ignore-scripts true

Stops hooks inside any cloned repository from executing on git operations

mkdir -p ~/.no-git-hooks && git config --global core.hooksPath ~/.no-git-hooks

Quarantines a suspect interview project instead of deleting it, replace the path with the folder you were sent

mkdir -p ~/Quarantine && mv ~/Downloads/interview-project ~/Quarantine/

Prompts for the agent you already run

Paste this after someone on your team admits they cloned or ran a project sent by a recruiter

Audit this machine for the WaterPlum interview lure pattern. Do not delete or modify anything. Report the value of `npm config get ignore-scripts`, then list every package.json under the home directory that defines preinstall, postinstall or prepare, and print those script bodies verbatim. List every .vscode/tasks.json that contains runOn folderOpen and print the command it runs. List every .git/hooks directory containing a non .sample file. Show me the full command output for each step. Stop and wait for my approval before moving, quarantining or removing any file.

Paste this to harden a developer workstation before the next interview cycle

Harden this developer workstation against code sent by a third party. First show me the current values of `npm config get ignore-scripts` and `git config --global core.hooksPath` so I can see the before state. Then set ignore-scripts to true, create an empty ~/.no-git-hooks directory and point core.hooksPath at it, and tell me exactly which existing projects will need `npm install --ignore-scripts=false` as a result. Do not change any project level .npmrc, do not touch CI configuration, and stop before any change that would uninstall a package or overwrite an existing config file.

What to alert on

The observable is process lineage where a developer tool becomes the parent of a network capable interpreter that nobody typed a command into. On Windows, alert on Sysmon Event ID 1 where ParentImage is Code.exe, node.exe or npm.cmd and Image resolves to powershell.exe, curl.exe, python.exe or wscript.exe, with a CommandLine containing an encoded blob or an outbound URL. On macOS and Linux, the equivalent from your EDR's process exec telemetry is Electron or node as the parent of /bin/sh, curl or python3 within seconds of a workspace opening or an npm install. Pair that with DNS query logs filtered to queries made by node or by the editor's helper process where the answer resolves to a domain registered in the last 30 days, since the interview lure infrastructure is stood up per campaign and will not be on any allowlist. A single hit on the editor to interpreter lineage is worth a phone call to the user, because the legitimate version of that event almost always comes with a matching terminal session you can point to.

Questions about your exposure?

RedEye Security provides assessments for organizations that need to understand their real risk.

Talk to us