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.
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.-= Per source details. Do not edit below this line.=-
Package impersonates the across-protocol organization (published as @across-toolkit/typescript-config@99.0.0, 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...
99.0.099.0.1Exploitability
AV:NAC:LPR:NUI:NScope
S:CImpact
C:HI:HA:H10.0/CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H