LWA-2026-7488 MAL-2026-11540 ↗ confirmed malware

hubert-application-get-document-preview-am@20.4.6

Malicious code in hubert-application-get-document-preview-am (npm)

T1195.002 · Compromise Software Supply ChainT1059.007 · JavaScriptT1105 · Ingress Tool TransferT1071.001 · Web ProtocolsT1573 · Encrypted ChannelT1041 · Exfiltration Over C2 ChannelT1082 · System Information DiscoveryT1059 · Command and Scripting Interpreter

Analysis

At require-time, the package downloads and executes a remote binary payload. It fingerprints the host operating system and CPU architecture, then sends HTTPS GET requests to multiple Cloudflare Workers endpoints (oob-worker[.]cf100-416[.]workers[.]dev, oob-worker[.]cf101-adf[.]workers[.]dev, oob-worker[.]cf102-baf[.]workers[.]dev, oob-worker[.]cf103-070[.]workers[.]dev) at path /pkg/package to fetch a platform-specific binary. If HTTP download fails, it falls back to a DNS TXT record-based data channel via c[.]tin[.]dl[.]well1[.]site. The downloaded binary is written to /var/tmp/.cache_<random> (Linux/macOS) or %TEMP%\dotnet_diag_<random>.exe (Windows) and spawned as a detached background process that outlives the parent. A cache marker file at /tmp/.analytics_state prevents re-downloading more frequently than every 22 seconds. The package has no lifecycle scripts — the dropper runs on require() via index.js requiring ./setup.

analyzed by
Leitwacht
first seen
Aug 2, 2026, 04:01 PM
analyzed
Aug 2, 2026, 04:03 PM

Related advisories

browse all confirmed advisories →

Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.