Skip to navigation

Threat reportAPTTL-2026-5653

North Korean Lazarus (Operation DreamJob) and DeceptiveDevelopment Target Drone Technology and Software Supply Chains

highACTIVE

ESET's APT Activity Report (Q2-Q3 2026, April-September 2026) describes North Korea-aligned Lazarus resuming Operation DreamJob recruitment lures against European defense and UAV-sector companies, while DeceptiveDevelopment moved from fake job interviews to poisoning open-source software supply chains (npm, Go, Packagist, PyPI, browser extension marketplaces) to steal developer credentials. First disclosed .

Key facts

IdentifiersTL-2026-5653
Also known asOperation DreamJob, NullReceiver, MortPusLoader
SeverityHIGH
First disclosed
Affected productsVarious Defense and UAV-sector organizations (Windows endpoints); npm bianira-ui; npm fluid-type-ui; Open-source ecosystems npm, Go module mirror, Packagist, PyPI, browser extension marketplaces
AttributionLazarus Group, Contagious Interview - G1052 (medium confidence)
Nation-state nexusNorth Korea
MalwareDEV#POPPER, ForestTiger, LightlessCan, LightlessTeaR, MortPusLoader, NullReceiver, OmniStealer
MITRE ATT&CK techniquesT1027.007 Obfuscated Files or Information: Dynamic API Resolution, T1057 Process Discovery, T1059.007 Command and Scripting Interpreter: JavaScript, T1071.001 Application Layer Protocol: Web Protocols, T1082 System Information Discovery, T1129 Shared Modules, T1140 Deobfuscate/Decode Files or Information, T1195.002 Supply Chain Compromise: Compromise Software Supply Chain, T1204.002 User Execution: Malicious File, T1528 Steal Application Access Token, T1552.004 Unsecured Credentials: Private Keys, T1555.003 Credentials from Password Stores: Credentials from Web Browsers and 7 more in the attack flow
MotivationESPIONAGE
Target sectorsdefense, aerospace, unmanned aircraft systems, software development, open-source maintainers, cryptocurrency, academia, government administration
Target regionsEurope, south korea, ukraine, 005 - South America
Detection rules9 (1 shown free)
Sources10 cited sources

Detection coverage

As of 2026-11-10, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-5653 across Splunk SPL, Microsoft KQL and Sigma, covering 28 indicator(s) of compromise. The whole corpus is readable without an account. Every threat comes with one complete detection in Splunk SPL, Microsoft KQL and Sigma, free for everyone; a free account adds daily TL Creds to unlock the rest. Paid plans add a larger daily allowance, correlation and the MCP server. Threadlinqs MCP server · View plans.

Free detection: NullReceiver Blockchain C2 Lookup — Node.js Contacting Ethereum RPC or 166.88.134.62

Detects the NullReceiver loader used by DPRK-linked (Lazarus / DeceptiveDevelopment) trojanized npm packages such as bianira-ui@1.27.0 and fluid-type-ui@2.0.8. The loader reads the latest outgoing transaction of a hardcoded Ethereum wallet (0xa322e5f3d311d3080e6f0121063e9adc2490ef1a) through public RPC endpoints (1rpc.io, eth.drpc.org) and decodes the C2 IP (166.88.134.62) from the recipient address. A Node.js/Bun/Deno process resolving those RPC hosts or connecting to the decoded C2 on ports 80/443 on a developer or build host is the behavioural signature of this supply-chain stage (T1195.002, T1568, T1059.007).

  • Languages: Splunk SPL, Microsoft KQL, Sigma
  • ATT&CK: T1195.002, T1568, T1059.007, T1071.001
  • Data sources: sysmon, microsoft_defender_for_endpoint
  • Severity: high
  • Confidence: high

Splunk SPL

index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"
(EventCode=22 OR EventCode=3) Image IN ("*\\node.exe","*\\bun.exe","*\\deno.exe")
| where match(QueryName,"(?i)^(1rpc\\.io|eth\\.drpc\\.org)\\.?$") OR match(DestinationHostname,"(?i)^(1rpc\\.io|eth\\.drpc\\.org)\\.?$") OR DestinationIp="166.88.134.62"
| eval indicator=coalesce(QueryName, DestinationHostname, DestinationIp)
| stats count min(_time) as firstTime max(_time) as lastTime values(indicator) as indicators values(DestinationIp) as dest_ips values(DestinationPort) as dest_ports by host, User, Image
| eval firstTime=strftime(firstTime,"%Y-%m-%d %H:%M:%S"), lastTime=strftime(lastTime,"%Y-%m-%d %H:%M:%S")
| table firstTime lastTime host User Image indicators dest_ips dest_ports count

Microsoft KQL

let EthRpcHosts = dynamic(["1rpc.io","eth.drpc.org"]);
DeviceNetworkEvents
| where Timestamp > ago(24h)
| where InitiatingProcessFileName in~ ("node.exe","bun.exe","deno.exe","node","bun","deno")
| where RemoteIP == "166.88.134.62" or RemoteUrl has_any (EthRpcHosts)
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp), Connections=count(), RemoteIPs=make_set(RemoteIP, 10), RemoteUrls=make_set(RemoteUrl, 10), Ports=make_set(RemotePort, 10) by DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine

Sigma

title: Node.js Process Contacting Ethereum RPC Endpoints (NullReceiver Blockchain C2 Lookup)
id: 7c1d2e3f-4a5b-4c6d-8e9f-565300000001
status: experimental
description: Detects Node.js, Bun or Deno resolving public Ethereum RPC hosts (1rpc.io, eth.drpc.org) as used by the DPRK-linked NullReceiver loader in trojanized npm packages (bianira-ui, fluid-type-ui) to decode its C2 address (166.88.134.62) from a hardcoded wallet.
references:
    - https://www.welivesecurity.com/en/eset-research/eset-apt-activity-report-q2-2026-q3-2026/
    - https://opensourcemalware.com/blog/nullreceiver-dprk-c2-technique
    - https://welivesecurity.com/en/eset-research/gotta-fly-lazarus-targets-uav-sector
author: Threadlinqs Team
date: 2026-11-10
tags:
    - attack.initial-access
    - attack.t1195.002
    - attack.command-and-control
    - attack.t1568
    - attack.execution
    - attack.t1059.007
logsource:
    category: dns_query
    product: windows
detection:
    selection_proc:
        Image|endswith:
            - '\node.exe'
            - '\bun.exe'
            - '\deno.exe'
    selection_rpc:
        QueryName|endswith:
            - '1rpc.io'
            - 'eth.drpc.org'
    condition: selection_proc and selection_rpc
falsepositives:
    - Legitimate Web3/dApp developers whose Node.js tooling queries public Ethereum RPC providers
    - Blockchain indexers or wallet backends running on Node.js
level: high

Known false positives:

  • Web3 / dApp developers running Node.js tooling that legitimately queries Ethereum RPC providers such as 1rpc.io or eth.drpc.org
  • Blockchain indexer or wallet backend services built on Node.js

Tuning notes: Exclude known Web3 development hosts and service accounts by host or User. Extend the Image list for npx or Electron wrappers if your telemetry reports a different image. Ensure Sysmon DNS logging (EventCode 22) includes Node.js. Add other RPC providers (infura, alchemy, cloudflare-eth) only for hosts that have no Web3 business need.

8 more detection rules (Splunk SPL, Microsoft KQL, Sigma) · unlock with TL Creds. Sign up free to unlock the detection rules or query them with the Threadlinqs MCP server (Purple)
  • Malicious NullReceiver npm Packages bianira-ui / fluid-type-ui Installed or Executed · unlock with TL Creds
  • DEV#POPPER Startup Injection — VS Code, Cursor or Discord Spawning Download/Exec Shells · unlock with TL Creds
  • Community-Observed DPRK-Linked Sibling C2 Infrastructure (TL_OSINT_Scan) · unlock with TL Creds
  • Trojanized SumatraPDF Launched From User-Writable Path (Operation DreamJob Lure) · unlock with TL Creds
  • OmniStealer-Style Developer Secret Harvesting — Node/Python Reading Keys, Tokens and Browser Stores · unlock with TL Creds
  • Known Lazarus DreamJob Loader and ScoringMathTea Hashes Loaded or Executed · unlock with TL Creds
  • DreamJob DLL Side-Loading — wksprt/wkspbroker webservices.dll & radcui.dll or Unsigned Notepad++ Plugin · unlock with TL Creds
  • ScoringMathTea and NullReceiver C2 Infrastructure — Connections to Known Lazarus/DPRK C2 Hosts · unlock with TL Creds

Indicators of compromise

As of 2026-11-10, Threadlinqs Intelligence tracks 28 indicators of compromise for TL-2026-5653.

Sample indicators (3 of 28)

  • IP address: 166.88.134[.]62
  • Domain: coralsunmarine[.]com
  • URL: hxxps://1rpc[.]io/eth

Defanged, TLP:CLEAR. Full set of 28 indicators: unlock with TL Creds.

28 indicators of compromise · unlock with TL Creds. Compare plans

Community OSINT corroboration

3 of this threat's indicators have also been reported by the open-source security community. Community sightings are unverified and are kept separate from Threadlinqs' curated indicators. Indicator values, reporters and campaign linkage are available to authenticated Red-tier users.

Technical analysis

Per ESET's APT Activity Report Q2 2026-Q3 2026 (published 28 October 2026) and coverage by Cyber Security News (10 November 2026), two North Korea-aligned clusters were active between April and September 2026.

Lazarus / Operation DreamJob resumed targeting the drone sector around June 2026, mainly European defense OEMs and unmanned aircraft system suppliers, using recruitment-themed social engineering. One Central European defense company received a password-protected ZIP containing a BAE Systems-themed job description PDF (with an incorrect header) plus a trojanized SumatraPDF viewer presented as necessary to open it. New tooling includes MortPusLoader (two trojanized Notepad++ plugins, replacing the earlier WinMerge-plugin loader BinMergeLoader), ScoringMathTea (aka ForestTiger) as the main payload, and LightlessTeaR, a rewrite of LightlessCan that implements common Windows commands internally rather than spawning command-line processes. Compromised Roundcube webmail servers at academic and government institutions in South America supported C2. ESET assesses the drone focus as likely motivated by the role of drones in the war in Ukraine and North Korea's drone manufacturing ambitions; this is an assessment, not proof of coordination with Russia. The earlier DreamJob UAV wave (ESET, 23 October 2025) used trojanized open-source projects (Notepad++/WinMerge plugins, MuPDF, TightVNC, libpcre, DirectX wrappers), DLL side-loading (webservices.dll, radcui.dll via wksprt.exe/wkspbroker.exe), in-memory loading with MemoryModule, AES-128/ChaCha20 staging, and ScoringMathTea (about 40 commands, IDEA-encrypted base64 C2 over HTTP/HTTPS to compromised WordPress sites).

DeceptiveDevelopment moved from fake job-interview lures to broad software supply-chain compromise: harvesting developer Git credentials, SSH keys and access tokens, then injecting malicious code into public and private repositories (often with rewritten commit history) and propagating through poisoned projects distributed via npm, the Go module mirror, Packagist, PyPI and browser extension marketplaces. Most compromised projects were small utilities maintained by individuals. Tooling includes NullReceiver, a blockchain-based C2 lookup loader that reads the most recent outgoing transaction of a hardcoded Ethereum wallet and decodes the C2 IP from the recipient address (so operators can rotate servers with another transaction); OmniStealer, a cross-platform Python infostealer targeting credentials, wallets, password managers and developer secrets; and DEV#POPPER RAT, whose updated versions inject code into VS Code, Cursor and Discord to run at application startup. A hidden VS Code task in a compromised repository can launch the lookup mechanism.

OpenSourceMalware's static analysis of the npm packages bianira-ui@1.27.0 and fluid-type-ui@2.0.8 (clones of Tailwind CSS plugins, attributed by that source to the DPRK Contagious Interview campaign) found the hardcoded wallet 0xa322e5f3d311d3080e6f0121063e9adc2490ef1a, a zero-value transaction to the encoded recipient 0xa658863ea658863e68656c6c6f6970626f742121 decoding to 166.88.134.62 (trailing bytes 'helloipbot!!'), RPC lookups via 1rpc.io and eth.drpc.org, the marker A10-npm3!, and a Node.js RAT connecting to ports 443 and 80. Caveat: ESET stated it had not attributed DeceptiveDevelopment to a known actor, and linking NullReceiver specifically to ESET's DeceptiveDevelopment reporting is inferred from shared DPRK attribution and npm delivery. The public ESET summary contains no IOCs; the IOCs below come from the news article, OpenSourceMalware, and ESET's October 2025 DreamJob UAV research (lineage context).

MITRE ATT&CK techniques by tactic:

Defense Evasion

T1027.007 Obfuscated Files or Information: Dynamic API Resolution; T1140 Deobfuscate/Decode Files or Information; T1620 Reflective Code Loading

Discovery

T1057 Process Discovery; T1082 System Information Discovery

Execution

T1059.007 Command and Scripting Interpreter: JavaScript; T1129 Shared Modules; T1204.002 User Execution: Malicious File

Command and Control

T1071.001 Application Layer Protocol: Web Protocols; T1568 Dynamic Resolution; T1573.001 Encrypted Channel: Symmetric Cryptography

Initial Access

T1195.002 Supply Chain Compromise: Compromise Software Supply Chain; T1566.003 Phishing: Spearphishing via Service

Credential Access

T1528 Steal Application Access Token; T1552.004 Unsecured Credentials: Private Keys; T1555.003 Credentials from Password Stores: Credentials from Web Browsers

stealth

T1574.001 DLL

Resource Development

T1584.004 Compromise Infrastructure: Server; T1587.001 Develop Capabilities: Malware

Remediation

Patches

  • No CVE or vendor patch applies; remove malicious packages and reinstall clean versions of affected projects

Immediate actions

  • Block 166.88.134.62 (ports 80/443) and the ScoringMathTea C2 domains/IPs listed in the IOCs at egress; hunt for historic connections
  • Search lockfiles, node_modules and package caches for bianira-ui@1.27.0 and fluid-type-ui@2.0.8 and for the string A10-npm3!
  • Alert on developer hosts querying Ethereum RPC endpoints (1rpc.io, eth.drpc.org) from Node.js processes
  • Rotate Git credentials, SSH keys, npm/PyPI tokens and cloud secrets on any developer host that ran untrusted recruitment or coding-challenge projects
  • Review recent commits in owned repositories for rewritten history, unexpected force-pushes and unfamiliar .vscode/tasks.json entries

Workarounds

  • Allow-list Notepad++ and WinMerge plugins and block unsigned plugin DLLs
  • Disable VS Code auto-run tasks and extension installs from untrusted sources on developer workstations

Longer-term hardening

  • Train defense and UAV-sector staff and developers on fake recruiter and job-interview lures; prohibit running candidate-supplied software on corporate endpoints
  • Enforce package pinning, lockfile review, provenance checks and private registry mirrors for npm, PyPI, Go and Packagist
  • Require phishing-resistant MFA and short-lived tokens for source-control and package registries; restrict VS Code workspace auto-run tasks (Workspace Trust)
  • Deploy EDR with detection for DLL side-loading, trojanized Notepad++ plugins and reflective DLL loading

Affected and fixed versions

  • Various — Defense and UAV-sector organizations (Windows endpoints)
    Vulnerable versions: Hosts executing trojanized PDF viewers or Notepad++ plugins from recruitment lures
  • npm — bianira-ui
    Vulnerable versions: 1.27.0
  • npm — fluid-type-ui
    Vulnerable versions: 2.0.8
  • Open-source ecosystems — npm, Go module mirror, Packagist, PyPI, browser extension marketplaces
    Vulnerable versions: Small utility projects with compromised maintainer credentials

Timeline

  • ScoringMathTea first appears in VirusTotal submissions from Portugal and Germany with an Airbus-themed lure (ESET, Oct 2025 report).
  • Late March 2025: ESET telemetry first observes the Operation DreamJob wave against European defense and UAV-sector companies.
  • ESET publishes 'Gotta fly: Lazarus targets the UAV sector', documenting ScoringMathTea, BinMergeLoader and trojanized open-source loaders.
  • Start of the April-September 2026 activity window covered by the ESET APT Activity Report Q2-Q3 2026.
  • Around June 2026: Operation DreamJob resumes drone-sector targeting using MortPusLoader (trojanized Notepad++ plugins), LightlessTeaR and ScoringMathTea.
  • OpenSourceMalware publishes analysis of NullReceiver in npm packages bianira-ui@1.27.0 and fluid-type-ui@2.0.8 resolving C2 locked-ioc-19 from an Ethereum wallet.
  • End of the ESET reporting window (April-September 2026).
  • ESET publishes the APT Activity Report Q2 2026-Q3 2026 noting Lazarus drone targeting and DeceptiveDevelopment's shift to supply-chain compromise.
  • Cyber Security News publishes technical coverage and IOCs for the Lazarus and DeceptiveDevelopment campaigns.

Sources cited

More from Lazarus Group

Drafted by the Threadlinqs research pipeline from 10 sources; published ; last updated —.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level

Latest Threats