Forged commits plant preinstall dropper in hugo-paper and mevn-cli GitHub repos, fetching payload from buildwithknexus[.]xyz
An attacker pushed forged commits into two unrelated GitHub projects, hugo-paper and mevn-cli, adding a malicious preinstall hook that downloads and runs a second-stage script from buildwithknexus[.]xyz whenever npm install or bun install is executed. The commits copy the author, date and message of legitimate tip commits, so history looks untouched. No npm package carries the payload, so registry scanners miss it. SafeDep infers stolen maintainer push credentials but has not confirmed this, and has not retrieved the second stage.
Detalhes técnicos
- The hook is the first entry under
scriptsin package.json:node scripts/preinstall.js. - The loader uses
curl -ks(TLS checks off, silent) to fetch/check_m(macOS/Linux, saved to/tmp/checkand run in the background with nohup) or/check_w(Windows, saved to%TEMP%\check.cmdand run via cmd). AllexecSynccalls use stdio ignore. - hugo-paper: on 2026-08-21 02:22 UTC the attacker force-pushed commit a68d2c9b over main, replacing merge commit de1169ec (PR #267). Tells: the "Verified" badge is gone and the commit has one parent instead of two.
- mevn-cli: on 2026-08-20 11:23 UTC the attacker appended commits (eabf4d9, f883021 on develop; 3a30d0d, ceb4558 on master) that copy the preceding commit's metadata. Payload v1 used hidden PowerShell and likely broke on Windows. Payload v2 uses curl.exe and cmd /c. The last npm release (1.8.3, 2022) is clean.
- Forks made after the attack inherit the payload. The activity is not linked to GlassWorm or ForceMemo: same git technique, but different tooling and no shared indicators.
Remediação
- You are affected if you cloned or pulled the affected branches after the dates above and ran a package install without
--ignore-scripts. - Treat the machine or CI runner as compromised. Look for
/tmp/check,%TEMP%\check.cmdand any reference to buildwithknexus.xyz. - Rotate all reachable secrets: GitHub tokens, SSH keys, npm tokens, cloud credentials, .env files and browser-stored credentials.
- Block buildwithknexus.xyz at DNS or proxy level and search egress logs for earlier connections.
Linha do tempo
-
Forged commits plant preinstall dropper in hugo-paper and mevn-cli GitHub repos, fetching payload from buildwithknexus[.]xyz
ler a análise desta fonte ocultar
An attacker pushed forged commits into two unrelated GitHub projects, hugo-paper and mevn-cli, adding a malicious
preinstallhook that downloads and runs a second-stage script from buildwithknexus[.]xyz whenevernpm installorbun installis executed. The commits copy the author, date and message of legitimate tip commits, so history looks untouched. No npm package carries the payload, so registry scanners miss it. SafeDep infers stolen maintainer push credentials but has not confirmed this, and has not retrieved the second stage.Technical Details
- The hook is the first entry under
scriptsin package.json:node scripts/preinstall.js. - The loader uses
curl -ks(TLS checks off, silent) to fetch/check_m(macOS/Linux, saved to/tmp/checkand run in the background with nohup) or/check_w(Windows, saved to%TEMP%\check.cmdand run via cmd). AllexecSynccalls use stdio ignore. - hugo-paper: on 2026-08-21 02:22 UTC the attacker force-pushed commit a68d2c9b over main, replacing merge commit de1169ec (PR #267). Tells: the "Verified" badge is gone and the commit has one parent instead of two.
- mevn-cli: on 2026-08-20 11:23 UTC the attacker appended commits (eabf4d9, f883021 on develop; 3a30d0d, ceb4558 on master) that copy the preceding commit's metadata. Payload v1 used hidden PowerShell and likely broke on Windows. Payload v2 uses curl.exe and cmd /c. The last npm release (1.8.3, 2022) is clean.
- Forks made after the attack inherit the payload. The activity is not linked to GlassWorm or ForceMemo: same git technique, but different tooling and no shared indicators.
Remediation
- You are affected if you cloned or pulled the affected branches after the dates above and ran a package install without
--ignore-scripts. - Treat the machine or CI runner as compromised. Look for
/tmp/check,%TEMP%\check.cmdand any reference to buildwithknexus.xyz. - Rotate all reachable secrets: GitHub tokens, SSH keys, npm tokens, cloud credentials, .env files and browser-stored credentials.
- Block buildwithknexus.xyz at DNS or proxy level and search egress logs for earlier connections.
- The hook is the first entry under