惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
T
Threatpost
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
S
Securelist
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
S
Secure Thoughts
MyScale Blog
MyScale Blog
O
OpenAI News
P
Palo Alto Networks Blog
美团技术团队
C
Cyber Attacks, Cyber Crime and Cyber Security
TaoSecurity Blog
TaoSecurity Blog
量子位
L
Lohrmann on Cybersecurity
G
GRAHAM CLULEY
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Know Your Adversary
Know Your Adversary
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Simon Willison's Weblog
Simon Willison's Weblog
宝玉的分享
宝玉的分享
PCI Perspectives
PCI Perspectives
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
I
InfoQ
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
S
Security @ Cisco Blogs
S
Schneier on Security
B
Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Cloudflare Blog
AWS News Blog
AWS News Blog
IT之家
IT之家
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News
H
Heimdal Security Blog
I
Intezer
A
Arctic Wolf
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
H
Help Net Security
W
WeLiveSecurity

Step Security Blog

Announcing Dependabot Configuration Enhancements: Cooldown and Group Support - StepSecurity Securing Vibe Coding and AI Coding Agents: An End-to-End Approach with StepSecurity - StepSecurity Introducing StepSecurity Dev Machine Guard: Protecting Developer Machines from Supply Chain Attacks - StepSecurity Top 2024 Predictions for CI/CD Security - StepSecurity Dev Machine Guard Is Now Open Source: See What's Really Running on Your Developer Machine - StepSecurity Datadog's DevSecOps 2026 Report Validates What We've Been Building - StepSecurity hackerbot-claw: An AI-Powered Bot Actively Exploiting GitHub Actions - Microsoft, DataDog, and CNCF Projects Hit So Far - StepSecurity Cline Supply Chain Attack Detected: cline@2.3.0 Silently Installs OpenClaw - StepSecurity StepSecurity’s Unified Protection Across the SDLC Infrastructure Threat Framework (SITF) - StepSecurity @velora-dex/sdk Compromised on npm: Malicious Version Drops macOS Backdoor via launchctl Persistence - StepSecurity axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity Behind the Scenes: How StepSecurity Detected and Helped Remediate the Largest npm Supply Chain Attack - StepSecurity 10 Layers Deep: How StepSecurity Stops TeamPCP's Trivy Supply Chain Attack on GitHub Actions - StepSecurity Malicious IoliteLabs VSCode Extensions Target Solidity Developers on Windows, macOS, and Linux with Backdoor - StepSecurity TeamPCP Plants WAV Steganography Credential Stealer in telnyx PyPI Package - StepSecurity litellm: Credential Stealer Hidden in PyPI Wheel - StepSecurity Checkmarx KICS GitHub Action Compromised: Malware Injected in All Git Tags - StepSecurity CanisterWorm: How a Self-Propagating npm Worm Is Spreading Backdoors Across the Ecosystem - StepSecurity Trivy Compromised a Second Time - Malicious v0.69.4 Release, aquasecurity/setup-trivy, aquasecurity/trivy-action GitHub Actions Compromised - StepSecurity bittensor-wallet 4.0.2 Compromised on PyPI - Backdoor Exfiltrates Private Keys - StepSecurity Malicious npm Releases Found in Popular React Native Packages - 130K+ Monthly Downloads Compromised - StepSecurity Malicious Polymarket Bot Hides in Hijacked dev-protocol GitHub Org and Steals Wallet Keys - StepSecurity ForceMemo: Hundreds of GitHub Python Repos Compromised via Account Takeover and Force-Push - StepSecurity xygeni-action Compromised: C2 Reverse Shell Backdoor Injected via Tag Poisoning - StepSecurity kubernetes-el Compromised: How a Pwn Request Exploited a Popular Emacs Package - StepSecurity How StepSecurity Caught a Release Storm in Microsoft’s @types Packages - StepSecurity Harden Runner Now Supports Windows and macOS GitHub Actions Runners - StepSecurity 10,000 Open-Source Projects Now Secured by Harden-Runner Community-Tier: A Milestone Three Years in the Making - StepSecurity 20+ Popular NPM Packages Compromised (Chalk, Debug, Strip-ANSI, Color-Convert, Wrap-ANSI...) - StepSecurity 2024 in Review: The Evolution of CI/CD Security & What's Next - StepSecurity How to Use Docker in Actions Runner Controller (ARC) Runners Securely - StepSecurity Celebrating 1000 Repositories Secured with Harden Runner: A Journey of Growth and Collaboration - StepSecurity StepSecurity Detects Early Supply Chain Risk Signals in kilocode npm - StepSecurity Another npm Supply Chain Attack: The 'is' Package Compromise - StepSecurity anthropics/claude-code-action Security: How to Secure Claude Code in GitHub Actions with Harden-Runner - StepSecurity Harden-Runner detection: tj-actions/changed-files action is compromised - StepSecurity StepSecurity's Catalog of Fixes - StepSecurity Orchestrating Security: StepSecurity's Impact on 400+ Repositories and Future Plans - StepSecurity Announcing Anomalous Outbound Call Detection Using Machine Learning - StepSecurity Announcing GitHub Actions Advisor and StepSecurity Maintained Actions - StepSecurity Analysis of Backdoored XZ Utils Build Process with Harden-Runner - StepSecurity Announcing General Availability of Harden Runner - StepSecurity Milestone Achieved: 2500+ Public Repositories Secured with Harden-Runner - StepSecurity Build secretless CI/CD pipelines using wait-for-secrets - StepSecurity Introducing Apps & PATs: Centralized Visibility for GitHub Apps and Personal Access Tokens - StepSecurity CVE-2026-22709: Critical Sandbox Escape Vulnerability in vm2 - StepSecurity StepSecurity Now Supports Dark Mode - StepSecurity 2025 in Review: The Evolution of Supply Chain Security & What's Next - StepSecurity Bake Harden-Runner Into GitHub's Custom Runner Images for Organization-Wide CI/CD Security - StepSecurity StepSecurity Is Now Available on Azure Marketplace - StepSecurity Critical Remote Code Execution Vulnerabilities Discovered in React Server Components and Next.js - StepSecurity Sha1-Hulud: The Second Coming - Zapier, ENS Domains, and Other Prominent NPM Packages Compromised - StepSecurity Supply Chain Security Alert: eslint-config-prettier Package Shows Signs of Compromise - StepSecurity 9,000 Open-Source Projects Now Secured by Harden-Runner - StepSecurity Shai-Hulud: Self-Replicating Worm Compromises 500+ NPM Packages - StepSecurity Introducing npm Package Search: Find Where Any Package Was Introduced Across Your GitHub Organizations - StepSecurity StepSecurity Is Sponsoring GitHub Universe 2025 - StepSecurity s1ngularity: Popular Nx Build System Package Compromised with Data-Stealing Malware - StepSecurity Introducing StepSecurity Threat Intelligence: Real-Time Supply Chain Attack Alerts for Your SIEM - StepSecurity 8,000 Strong: Harden-Runner's Growing Impact on CI/CD Security - StepSecurity Securing Google Gemini in GitHub Actions with Harden-Runner - StepSecurity GhostAction Campaign: Over 3,000 Secrets Stolen Through Malicious GitHub Workflows - StepSecurity Introducing the NPM Package Cooldown Check - StepSecurity Securing GitHub Copilot in GitHub Actions with Harden-Runner - StepSecurity Calculate Your CI/CD Security ROI with StepSecurity's New ROI Calculator - StepSecurity How StepSecurity Harden Runner Detected Unexpected Microsoft Defender Installation on GitHub-hosted Ubuntu Runners - StepSecurity StepSecurity Harden Runner: Detect source code tampering during the build process - StepSecurity Suspicious Tag Movement in AWS’s GitHub Action: What Happened and Why It Matters - StepSecurity When 'Changed Files' Changed Everything: Our Black Hat 2025 Presentation on the tj-actions Supply Chain Breach - StepSecurity Lessons from AWS CodeBuild’s Memory-Dump Incident (CVE-2025-8217) - StepSecurity Supply Chain Security Alert: num2words PyPI Package Shows Signs of Compromise - StepSecurity When AI Meets CI/CD: Coding Agents in GitHub Actions Pose Hidden Security Risks - StepSecurity The GitHub Warning Everyone Ignores: 'This Commit Does Not Belong to Any Branch' - StepSecurity 8 GitHub Actions Secrets Management Best Practices to Follow - StepSecurity reviewdog GitHub Actions are compromised - StepSecurity 7,000 Open-Source Projects Now Secured by Harden-Runner - StepSecurity Replace Third-Party Actions with StepSecurity Maintained Actions via Automated Pull Requests - StepSecurity StepSecurity Is Now Available on AWS Marketplace - StepSecurity Introducing StepSecurity Artifact Monitor: Detect Unauthorized Software Releases in minutes, not months - StepSecurity Introducing Workflow Run Policies: Guardrails for Blocking Non-Compliant GitHub Actions Runs - StepSecurity Harden-Runner Detects New Traffic to release-assets.githubusercontent.com Across Multiple Customers - StepSecurity Grafana GitHub Actions Security Incident - StepSecurity Export Harden-Runner Security Insights and Detections to Amazon S3 - StepSecurity Evolving Harden-Runner’s disable-sudo Policy for Improved Runner Security - StepSecurity Announcing Policy-Driven Automated Pull Requests for CI/CD Misconfiguration Remediation - StepSecurity Announcing StepSecurity’s Integration with RunsOn: Secure and Optimized CI/CD Pipelines - StepSecurity Secure Repo Just Got Better: New Features for GitHub Actions Security Best Practices - StepSecurity Why Compliance Auditors Are Looking at Your CI/CD Runners - And How to Prepare - StepSecurity Harden-Runner Flags Anomalous Outbound Call, Leading to Docker Documentation Update - StepSecurity StepSecurity Harden-Runner Now Secures GitHub Actions Workflows for Over 5,000 Open Source Projects - StepSecurity GitHub Actions Pwn Request Vulnerability - StepSecurity Prevent Ultralytics Style CI/CD Security Attacks with Network Security Controls - StepSecurity PyTorch Supply Chain Compromise - StepSecurity Unified Network Egress View: Centralize GitHub Actions Network Destinations for Your Enterprise - StepSecurity Uniting Developers and Security: Celebrating the Success of 500+ Open Source Projects Using StepSecurity's Orchestration Platform - StepSecurity 5 Effective Third-Party GitHub Actions Governance Best Practices - StepSecurity StepSecurity Recognized Among CRN’s "10 Hottest DevOps Startups Of 2024" - StepSecurity Streamline Your GitHub Actions Workflows with StepSecurity’s Latest Feature - StepSecurity StepSecurity Steps Up the Security Game with SOC 2 Type 2 Compliance - StepSecurity StepSecurity's Alignment with CISA's CI/CD Security Guidance - StepSecurity
How Harden Runner Detected the Sha1-Hulud Supply Chain Attack in CNCF's Backstage Repository - StepSecurity
2025-12-15 · via Step Security Blog

Introduction

On November 23-24, 2025, the npm ecosystem experienced one of its largest coordinated supply chain attacks. Dubbed "Sha1-Hulud: The Second Coming" this attack compromised over 780 npm packages including packages from Zapier, ENS Domains, PostHog, Postman, and AsyncAPI. The malicious code targeted CI/CD environments, harvesting credentials and attempting to establish persistent backdoors.

Among the thousands of CI/CD pipelines that ran these compromised packages were those of Backstage, the Cloud Native Computing Foundation's open-source developer portal platform created by Spotify, with over 32,000 GitHub stars and widespread enterprise adoption.

StepSecurity Harden Runner detected this attack across all repositories where it was monitoring workflow runs. Because Backstage is a prominent open source project using Harden Runner's free community tier (which makes insights publicly accessible), we're using it as a case study to explain how baseline-driven anomaly detection identified the attack and what this means for securing CI/CD pipelines.

What Happened

During the attack window, nine GitHub Actions workflow runs in the `backstage/backstage` repository executed compromised npm packages. The affected jobs were part of Backstage's E2E test workflow, specifically during the step that runs:

- name: Run E2E test
  run: |
    sudo sysctl fs.inotify.max_user_watches=524288
    yarn e2e-test run

When `yarn e2e-test run` resolved and installed dependencies, it fetched the latest versions of certain packages since the package does not have a lock file. During the attack window, those latest versions happened to be compromised. The malicious `preinstall` scripts executed immediately, triggering the Sha1-Hulud payload.

Backstage uses Harden Runner's community tier, which is free for open source projects. The Backstage maintainers have been using Harden Runner since October 2023, demonstrating their proactive approach to implementing security best practices for their CI/CD pipelines. Harden Runner operates as an EDR (Endpoint Detection and Response) agent for GitHub Actions runners, monitoring runtime behavior including all outbound network connections.

Baseline-Driven Anomaly Detection

Harden Runner builds a baseline of expected network destinations for each workflow. When a workflow run makes connections to endpoints outside this baseline, it triggers an anomaly alert.

During the Sha1-Hulud attack, the compromised packages initiated connections to endpoints that had never appeared in Backstage's E2E workflow history:

Anomalous Endpoint Purpose in Attack
bun.sh The malware downloads the Bun JavaScript runtime to execute its obfuscated payload
oss.trufflehog.org The malware downloads TruffleHog to scan the repository and environment for secrets

These connections immediately stood out in Harden Runner's network telemetry. They were not part of the established baseline for Backstage's E2E tests, which typically connect to npm registries, GitHub APIs, and test infrastructure—not to executable download endpoints.

With Harden Runner's block mode enabled, these connections would have been blocked entirely. The malware would have been unable to download Bun or TruffleHog, preventing the attack from progressing beyond the initial compromise.

Verifiable Evidence

Because Backstage uses the community tier of Harden Runner, the insights for these workflow runs are publicly accessible. Anyone can verify the detection:

- Run 19625457065 - E2E Linux Jobs (https://app.stepsecurity.io/github/backstage/backstage/actions/runs/19625457065)

- Run 19631408557 - E2E Linux Jobs (https://app.stepsecurity.io/github/backstage/backstage/actions/runs/19631408557)

- Run 19632292852 - E2E Linux Jobs (https://app.stepsecurity.io/github/backstage/backstage/actions/runs/19632292852)

Explore this interactive demo to see how StepSecurity Harden-Runner detected the attack:

When you visit these insights pages, you'll see the malicious connections clearly highlighted. Destinations that were new in these runs—such as `bun.sh`, `oss.trufflehog.org`, and `keychecker.trufflesecurity.com`—are displayed in orange with "Anomalous" tags, immediately distinguishing them from expected network activity.

You can also view the baseline that Harden Runner built for this workflow, including how many previous runs the baseline is based on. This makes it easy to understand why certain connections triggered alerts: they simply never appeared before in the workflow's history.

Deeper Visibility with Harden Runner Enterprise Tier

While the community tier detected this attack through network anomaly detection, Harden Runner's enterprise tier provides additional capabilities that offer even deeper visibility into supply chain attacks.

HTTPS Monitoring and Process Telemetry

The enterprise tier includes:

- HTTPS monitoring: Full visibility into HTTPS requests, not just connection endpoints

- Process events: Complete process execution telemetry including process tree and command-line arguments

- Real-time notifications: Immediate alerts via email, Slack, S3, and webhook integrations when anomalies are detected

Detecting the Persistence Mechanism

The Sha1-Hulud malware attempted to establish persistence by registering a self-hosted GitHub Actions runner named "SHA1HULUD" on affected repositories. This would have given attackers the ability to execute code remotely via repository discussion events.

With the enterprise tier's HTTPS monitoring, this persistence attempt was directly observable—the malware made HTTPS calls to the GitHub API to register the runner. This provides additional evidence of compromise beyond the initial payload download, and reveals the full scope of what the malware was attempting to do.

You can see this in action in our enterprise demo, where `Runner.Listener` made a POST call to `/actions/runner-registration` on `api.github.com`. This triggered a detection even without a baseline—workflows typically do not register runners, making this behavior inherently suspicious.

Explore this interactive demo to see how StepSecurity would have detected this attack for enterprise customers:

Real-Time Alerting

For enterprise customers, these detections trigger immediate notifications through configured integrations. Rather than discovering a compromise during a post-incident review, security teams are alerted in real-time as anomalous behavior occurs—enabling rapid response and containment.

Responsible Disclosure and Impact Assessment

We reported our findings to the Backstage maintainers, who reviewed the detection data and assessed the impact. Their analysis concluded that the affected E2E workflow only had access to a read-only GitHub token with no additional secrets configured. As a result, there was no impact from the compromise on the Backstage repository.

We want to acknowledge the Backstage maintainers for their quick response and support in investigating this incident. Their collaboration enabled us to rapidly confirm the detection findings and assess the impact.

From Detection to Prevention

While detecting the Sha1-Hulud attack provided valuable visibility, Harden Runner's block mode can actively prevent such attacks from succeeding.

In this case, Backstage was running Harden Runner in audit mode, which monitors and alerts on anomalous connections but does not block them. If block mode had been enabled, the connections to `bun.sh` and `oss.trufflehog.org` would have been blocked at the network level. The malware's `preinstall` script would have executed, but it would have been unable to:

- Download the Bun runtime needed to execute its obfuscated payload

- Download TruffleHog to scan for secrets

- Exfiltrate any discovered credentials without the payload

The attack would have been stopped before any damage could occur. For workflows with access to sensitive secrets, this is the difference between a security alert and a security incident.

Why Runtime Monitoring Matters

This case study validates a fundamental principle: you cannot rely solely on pre-deployment security checks to catch supply chain attacks.

Traditional security approaches focus on:

- Scanning dependencies for known vulnerabilities (CVEs)

- Reviewing lock files for unexpected changes

- Using allowlists for npm packages

These approaches fail against zero-day supply chain attacks like Sha1-Hulud because:

1. The compromised packages had no CVEs at the time of attack

2. Many projects do not use lock files, and in many cases the latest versions of packages are installed

3. The compromised packages were legitimate, trusted packages that had been hijacked

Runtime monitoring provides the missing layer. By establishing a baseline of expected behavior and alerting on anomalies, Harden Runner detected the attack based on what the code actually did—not what it claimed to be.

This isn't the first time Harden Runner has detected supply chain attacks. Previous detections include:

- tj-actions/changed-files compromise: A popular GitHub Action with 23,000+ dependent repositories was compromised

- @aspect-build/rules_js compromise: A popular Nx build system package was compromised with data-stealing malware

- ctrl-tinycolor and 40+ npm packages: Mass compromise of npm packages detected through runtime analysis

In each case, runtime monitoring identified the attack through anomalous behavior that traditional security tools missed.

Recommendations

Based on this incident, we recommend:

For Open Source Projects

1. Enable Harden Runner on your GitHub Actions workflows. The [community tier](https://github.com/step-security/harden-runner) is free for public repositories.

2. Review your workflow permissions. The principle of least privilege limited Backstage's exposure.

3. Consider enabling egress policy enforcement. Harden Runner can block connections to endpoints outside your baseline, stopping attacks in real-time.

For Enterprises

1. Implement runtime monitoring on your CI/CD workflows to gain visibility into supply chain attacks.

2. Treat CI/CD runners as high-value targets. They often have access to production credentials and deployment capabilities.

3. Monitor for anomalous behavior, not just known threats. Zero-day attacks require behavioral detection.

4. Assume that your dependencies can be compromised. Build your security posture around this assumption.

Conclusion

The Sha1-Hulud attack compromised over 780 npm packages and affected thousands of repositories. In the Backstage repository, Harden Runner detected the attack through baseline anomaly detection—identifying network connections to `bun.sh` and `oss.trufflehog.org` that had never appeared in the workflow's history.

This detection wasn't based on signatures or CVEs. It was based on observing that the workflow suddenly started doing something it had never done before.

For Backstage, the limited workflow permissions meant no impact. But the attack serves as a warning: supply chain attacks are increasingly sophisticated, and without runtime monitoring, you may never know your CI/CD pipelines were compromised.

Runtime monitoring provides the visibility needed to detect these attacks. If you're not monitoring what your CI/CD runners are actually doing, you're flying blind.

To learn more about Harden Runner and how it protects CI/CD pipelines from supply chain attacks, visit stepsecurity.io or explore the GitHub Action.

For technical details on the Sha1-Hulud malware and the full list of compromised packages, see our technical analysis