Skip to content

ci: add PolinRider malware scan on every push and PR - #598

Merged
prodbycorne merged 1 commit into
mainfrom
ci/polinrider-malware-scan
Oct 29, 2026
Merged

prodbycorne merged 1 commit into
mainfrom
ci/polinrider-malware-scan

Conversation

@prodbycorne

Copy link
Copy Markdown
Contributor

Summary

Adds .github/workflows/malware-scan.yml — a GitHub Actions CI check that runs on every push and pull request to every branch.

Background: The PolinRider malware campaign (tracked since early 2026) has been spreading through thousands of open-source GitHub repositories, targeting developer credentials (npm tokens, GitHub tokens, SSH keys). This repo was manually scanned and verified clean. This workflow makes the protection automatic going forward.

What is checked

# Indicator Description
1 Known marker strings rmcej%otb%, Cot%3t=shtP, _$_1e42 in JS/TS/JSON/HTML
2 VSCode auto-task trigger .vscode/tasks.json with runOn: folderOpen
3 VSCode auto-task permission .vscode/settings.json with allowAutomaticTasks: on
4 Suspicious font filenames fa-solid-500.woff2, fa-solid-600.eot, *.lfk, *.llf
5 Dropper payload dist/setup.js present anywhere in the tree
6 Hijacked install hook preinstall in package.json referencing dist/setup.js
7 Hijacked dev/start api.js + dev/start script beginning with node api.js &&
8 Config file payload appending Substantial code after export default in postcss/tailwind/eslint/next/jest/vite configs
9 Binary blobs as fonts .woff/.woff2/.eot/.ttf files that fail font magic-byte validation

Any hit fails the job with a file-annotated ::error pointing to the exact file.

Test plan

  • Merge → CI runs clean on main (repo was manually verified clean before this PR)
  • Drop a file containing _$_1e42 into a test branch → CI fails and annotates the file

Adds a GitHub Actions CI check on every push and pull request that scans
for all known PolinRider malware indicators: VSCode auto-task triggers,
suspicious font-file payloads, dist/setup.js droppers, hijacked
package.json lifecycle scripts, rogue api.js injection, config-file
payload appending after export default, and known marker strings
(rmcej%otb%, Cot%3t=shtP, _$_1e42).

Repo was manually verified clean before this workflow was added.
@netlify

netlify Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for sdcontracts ready!

Name Link
🔨 Latest commit b31689a
🔍 Latest deploy log https://app.netlify.com/projects/sdcontracts/deploys/6ae3aed825ee037c2d7eabb2
😎 Deploy Preview https://deploy-preview-598--sdcontracts.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@prodbycorne
prodbycorne merged commit 90c0434 into main Oct 29, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants