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

@across-toolkit/typescript-confignpm

@across-toolkit/typescript-config is a confirmed malicious npm package (MAL-2026-10704) that steals credentials and exfiltrates sensitive data (malicious versions 99.0.0, 99.0.1). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @across-toolkit/typescript-config (npm)

MAL-2026-10704
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @across-toolkit/typescript-config

What this malware does

The npm package @across-toolkit/typescript-config is a dependency-confusion credential stealer targeting developers of Across Protocol (across.to). It masquerades as an internal ESLint/TypeScript config for the across.to toolkit and publishes an implausibly high version (99.0.0) so that a misconfigured install resolves it from the public npm registry instead of a private package of the same name — the standard dependency-confusion technique.

A postinstall lifecycle hook (postinstall: node postinstall.js) executes automatically on npm install, before the package is ever imported. Using os.homedir(), the payload reads the host's AWS credentials (~/.aws/credentials), SSH private key (~/.ssh/id_rsa) and npm token (~/.npmrc), collects process.env, and exfiltrates the data via an HTTP POST to a hardcoded webhook.site endpoint (https://webhook.site/a585f4ec-20f7-4bd1-bac7-f3e53799dc5f). The payload is present in both the root postinstall.js and a nested eslint-config/postinstall.js, and uses child_process. Any developer workstation or CI runner that installs the package hands the operator AWS credentials, an SSH private key and an npm publish token.

Package impersonates the across-protocol organization (published as @across-toolkit/[email protected], a high-version dependency-confusion shape) and ships two postinstall stealer scripts that run automatically on npm install. postinstall.js and eslint-config/postinstall.js read installer-owned secrets from ~/.aws/credentials, ~/.aws/config, ~/.ssh/id_rsa, ~/.ssh/id_ed25519, ~/.npmrc, ~/.gitconfig,.env files, /etc/environment, /proc/1/environ, and gcloud application default credentials, and query cloud instance metadata services at http://metadata.google.internal/computeMetadata/v1/ (with the Metadata-Flavor: Google header) and http://169.254.169.254/ for IAM security credentials and OAuth tokens. The collected files, IMDS responses, and a base64-encoded copy of process.env (including NPM_TOKEN) are POSTed via https.request to two hardcoded webhook.site collectors (paths /a585f4ec-20f7-4bd1-bac7-f3e53799dc5f and /12b523e2-ee58-4598-8fe1-bbf1f3999550). The declared package purpose is a shared tsconfig; the network exfiltration and credential harvesting have no relation to that purpose.

Malicious versions

2 flagged
99.0.099.0.1

Indicators of compromise (SHA-256)

5580d26d1829c9faf6465962431399aee9804c8ed1264274b30b9ce42f274bd9
76463f7af786d538f929fe7f1644dc5ec072a7a9bdf4e0c4b7482fa510450c44

Detection & response playbook

Credential / info stealer
  1. Find it

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

  2. If you installed it — respond

    @across-toolkit/typescript-config is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If @across-toolkit/typescript-config 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 @across-toolkit/typescript-config 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. @across-toolkit/typescript-config on npm has been identified as a malicious package (versions 99.0.0, 99.0.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-010699IN-MAL-2026-010701

References

Credits

  • Amazon Inspector · finder
  • codelake Research · finder

Detect & block this

O3 blocks @across-toolkit/typescript-config-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

@across-toolkit/typescript-config (npm) malicious package — MAL-2026-10704 | O3 Security