Malicious code in upshift-config (npm)
Three malicious npm packages (upshift-config, upshift-finance, augustdigital-sdk) were published by a freemail account impersonating August Digital's legitimate SDK. The packages are byte-identical repacks of the genuine SDK with an added postinstall hook that exfiltrates system metadata (hostname, username, working directory) to a Cloudflare Workers endpoint disguised as CDN infrastructure.
- Disclosed
- Last updated
- Blast radius
- Unknown; depends on adoption of malicious package versions before removal.
- Ecosystems
- Attack vectors
- Affected entities
- upshift-config · 0.5.14
- upshift-financeRelated malicious package published by same account
- augustdigital-sdkRelated malicious package published by same account
On 2026-08-10, three npm packages were published within ~20 seconds from a single freemail account (awugochogabriel@gmail.com) with no relationship to August Digital's legitimate maintainers. The packages—upshift-config, upshift-finance, and augustdigital-sdk—were all published as first-ever releases, with upshift-config falsely versioned as 0.5.14 to imply a release history.\n\nEach package is a byte-identical repack of the genuine August Digital SDK (316 files), including the original README that instructs users to install the legitimate scoped package @augustdigital/sdk. A single unconditional postinstall hook was grafted into the package manifest.\n\nUpon installation, the postinstall hook executes an inline Node.js script that sends an HTTPS GET request to https://build-metrics-collector.cdn-ops-health.workers.dev/npm-install/ carrying system metadata: os.hostname(), os.userInfo().username, process.cwd(), package name/version, and an ISO timestamp. The endpoint is a Cloudflare Workers subdomain deliberately named to impersonate build/CDN health infrastructure. The exfiltration is wrapped in try/catch to fail silently.\n\nNo disclosure of this behavior appears in the README, package.json, or LICENSE. This represents a coordinated typosquatting and supply chain attack targeting users seeking the legitimate August Digital SDK.
Indicators of compromise
- Packages
- upshift-config
- upshift-finance
- augustdigital-sdk
- Domains
- build-metrics-collector.cdn-ops-health.workers.dev
Remediation
- Immediately uninstall upshift-config, upshift-finance, and augustdigital-sdk from all environments.
- Audit npm install logs and CI/CD pipelines for any installations of these packages between 2026-08-10 and detection.
- If any of these packages were installed, assume system metadata (hostname, username, working directory) may have been exfiltrated; review access logs and consider credential rotation.
- Install the legitimate scoped package @augustdigital/sdk instead.
- Monitor npm registry for similar typosquatting attempts targeting @augustdigital/sdk or related packages.
- Report the malicious account awugochogabriel to npm security for account suspension and package removal.
Sources
- GitHub Advisory GHSA-75gq-p797-7w4c · GitHub Advisory Database
Cite this entry
"Malicious code in upshift-config (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 10, 2026; last updated August 12, 2026. https://supplychainattack.org/incident/malicious-code-in-upshift-config-npm-18jimd
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in depcruise-wrap-stream-in-html (npm)
depcruise-wrap-stream-in-html@99.9.1 is a malicious npm package that mimics an internal helper of dependency-cruiser. It is a hollow package that downloads and executes arbitrary code from a Google Cloud Storage bucket during installation.
npmCompromised packageDependency confusionTyposquatting - resolvedcritical
Malicious code in @finaxis/common-js (npm)
The npm package @finaxis/common-js was published with a README and keywords copied from lodash v4.18.1, but contained a heavily obfuscated Xelis (XEL) proof-of-work cryptominer instead of lodash functionality. Consumers installing this package would unknowingly run a covert CPU/GPU miner on their systems.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in akamai-sensor (npm)
A malicious npm package named akamai-sensor impersonated Akamai's legitimate sensor_data anti-bot SDK. The package contained hidden JavaScript code concealed using invisible Unicode characters and implemented a dynamic command-and-control channel via a Google Calendar dead-drop, enabling arbitrary code execution on installation.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in wct-st (npm)
The npm package wct-st contained malicious code in its postinstall lifecycle script that collected and exfiltrated host identifiers to a remote endpoint. The package name resembles the deprecated web-component-tester, consistent with a typosquatting attack.
npmCompromised packageTyposquatting