Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

@demica/resourcesnpm

Malicious code in @demica/resources (npm) Remove it immediately and rotate any exposed credentials.

MAL-2026-5350
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @demica/resources

What this malware does

Note: This report is updated by a verification record

Dep-confusion squat of internal @demica/resources at sentinel high version 99.99.100 + auto-exec postinstall (canary.js) beaconing to RAW IP 157.230.17.236:80/dc. Sentinel-high-version + auto-exec beacon = MALICIOUS per operator policy (c913); "authorized canary" framing does NOT downgrade, raw-IP dest matches masterkrweb. 6-pkg @demica canary campaign.

On npm install, the package's scripts.postinstall executes canary.js, which issues an unconditional plain-HTTP GET to the hardcoded bare IP 157.230.17.236 on port 80 at path /dc?.... The query string includes os.hostname() (truncated to 200 chars) plus the package name, version, a nonce, and a phase identifier. This fires automatically on every install with no opt-out. The package self-describes as a 'dependency-confusion canary,' but it is published on the public npm registry under the @demica/* scope: any installer that resolves @demica/resources — including via accidental dependency confusion, typo, or curiosity install — will leak their hostname to the operator of that bare IP over unencrypted HTTP. The destination is an anonymous bare IP with no associated domain, publisher, or disclosure; hostname is an installer-side host identifier transmitted off-host to an attacker-shaped endpoint.

Malicious versions

1 flagged
99.99.100

Indicators of compromise (SHA-256)

98805b03541bafd28883acb75e8fd9d0e4ea947d75062563c34438dec82139bf

Detection & response playbook

Backdoor / remote access
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for @demica/resources (version 99.99.100). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging @demica/resources across your stack and pipelines.

  2. If you installed it — respond

    @demica/resources establishes remote access, so treat any host that installed it as fully compromised. Isolate the machine, remove the package, rotate all credentials it could reach, and rebuild from a trusted image rather than cleaning in place — a backdoor may have planted additional persistence.

  3. Did it already run?

    If @demica/resources was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks @demica/resources before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. @demica/resources on npm has been identified as a malicious package (version 99.99.100 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-005011

References

Credits

  • Amazon Inspector · finder
  • SafeDep · finder

Detect & block this

O3 blocks @demica/resources-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the C2 callback and severs the channel.

@demica/resources (npm) malicious package — MAL-2026-5350 | O3 Security