Protestware: How Ideologically Motivated Attackers Compromise Open Source Code and Supply Chains
Protestware has emerged as a serious supply chain threat in open source ecosystems, where maintainers intentionally embed destructive or politically motivated code into libraries and packages.
Unlike conventional malware aimed at financial profit, protestware is driven by ideological, social, or political motives. It can delete or corrupt data, sabotage business processes, restrict users from specific regions, or spread unauthorized messages.
The risk is comparable to traditional vulnerabilities, repository compromises, and Dependency Confusion attacks because the malicious code often arrives through normal dependency updates.
Known Incidents
One prominent case involved the packages node-ipc and peacenotwar. The node-ipc library added peacenotwar as a dependency; the module checked the user’s IP via geolocation services and, if located in Russia or Belarus, replaced files on disk with heart symbols while creating a WITH-LOVE-FROM-AMERICA.txt file on the desktop.
Another incident affected the popular colors.js library. An infinite loop printing non-ASCII characters was introduced, causing denial of service for any CLI or server application that required the package.
The es5-ext package, used by webpack, contained logic that triggered 100% CPU usage in an infinite loop if the system time was between 22:00 and 06:00 or the locale was set to ru_RU.
Placement and Triggers
Malicious logic can reside in runtime code, npm lifecycle hooks, build scripts, test scripts, or package metadata that fetches instructions from remote servers. Activation conditions include IP geolocation, system locale, environment variables such as NODE_ENV, hostname, username, and specific dates or times.
Detection and Mitigation
Organizations can detect suspicious components through static analysis for geo-IP or file-deletion patterns, dynamic analysis in isolated sandboxes, and continuous monitoring of repository changes. Recommended controls include pinning dependency versions, maintaining an internal artifact repository with approval gates, signing artifacts, and following the NIST Secure Software Development Framework, SLSA levels, and OpenSSF Scorecard assessments.
Related articles
OIDC Configured but GitHub Actions Still Vulnerable: Megalodon and actions-cool Attacks Expose Runner Risks
Even after widespread adoption of OIDC for temporary cloud credentials in GitHub Actions, two major attacks in May 2026 demonstrated that the approach remains insufficient on its own. Attackers compromised actions-cool/issues-helper by substituting action tags to execute malicious commits that read Runner.Worker memory. The Megalodon campaign injected malicious workflows into 5,561 public repositories, harvesting environment variables, credential files, kubeconfig, SSH keys, and OIDC tokens. OIDC eliminates long-lived AWS_ACCESS_KEY_ID secrets but leaves short-lived tokens exposed inside the runner during job execution. Four mandatory protection layers are now required: strict cloud trust policies using StringEquals on the sub claim, job-level id-token: write permissions, outbound traffic controls such as Harden-Runner, and CODEOWNERS enforcement on .github/workflows/. GitHub Environments with mandatory reviewers add an essential human-approval gate that would have disrupted the Megalodon attack path.
GitHub Repo Trap with 1774 Stars Mimics Microsoft Activation Scripts to Deliver Malware via Telegram Bot
A security researcher built a Telegram bot that daily delivers five trending GitHub repositories from trendshift.io along with README summaries. One repository named Microsoft Activation Scripts contained only a README with a reversed PowerShell command that decoded to download and execute a payload from a lookalike domain. The account was created 94 seconds before the repository and used classic one-liner installation syntax to blend with legitimate projects. Analysis of 321 trending repositories showed that simple filters such as recent account age or irm|iex patterns would incorrectly flag many legitimate projects including codex and opencode. Two independent detection rules were developed: one that normalizes and scans for obfuscated execution commands including base64, mshta, certutil and hidden window flags, and another that flags one-time owners created less than 30 days before the repository with under 10 KB of content. An additional groundedness check using the AIHOT method prevents DeepSeek from inserting unverified claims such as Ruby or Cypress into repository summaries.
GhostAction Campaign Expands to Inject Malicious GitHub Workflows Stealing AWS Keys and Tokens
The GhostAction campaign has returned with an expanded technique that targets a wider range of credentials across hundreds of repositories. On October 8, two compromised maintainer accounts injected a malicious workflow named security-audit.yml into 346 GitHub repositories, including high-profile projects such as uber/athenadriver and kitao/pyxel. The workflow disguises itself as a security audit routine and executes automatically on every code push, exfiltrating credentials via HTTP requests to attacker-controlled servers. Unlike previous waves that only harvested GitHub Actions secrets, the new version also scans the working directory and full git history for forgotten credentials in older commits. Targeted data includes AWS access keys, GitHub and GitLab tokens, Google API keys, Slack and SendGrid tokens, OpenAI and Anthropic credentials, PyPI passwords, and crates.io tokens. Since October 7, more than 500 GitHub accounts have planted similar workflows, building on earlier campaigns that affected 817 repositories in September 2025 and 772 between August and September.
Security Researcher Builds SAST Scanner for AI-Generated Code and Audits 3,800 Public Repositories
A developer released AigisSAST, a lightweight open-source static analysis tool written in pure Python with no external dependencies, specifically tuned to detect common mistakes made by AI coding assistants. The scanner was run across roughly 3,800 repositories ranging from small pet projects to popular open-source platforms. It identified thousands of potential secrets and misconfigurations, yet manual review reduced the number of genuine leaks to approximately 30 cases, mostly Telegram bot tokens, database credentials, and committed .env files. The project also examined 471 production-grade Telegram bots handling payments and VPN services, uncovering 31 repositories that exposed real credentials either in current code or in Git history. AigisSAST includes 21 detection rules, 193 regression tests, automatic remediation via the fix command, and seamless integration with GitHub Actions. The author deliberately avoided validating any discovered keys to stay within ethical research boundaries.