Skip to main content
CI/CD Pipeline Hijack: GitHub Actions Compromise operation cover
IntermediateSIEMXDR

CI/CD Pipeline Hijack: GitHub Actions Compromise

Investigate the March 2025 GitHub Actions supply-chain compromise involving tj-actions/changed-files and reviewdog/action-setup. A compromised action version tag caused Linux CI runners to execute malicious payload logic and expose CI/CD secrets in workflow logs using double-base64 encoding. Analyze SIEM and XDR telemetry to identify the affected action, runner identity, payload execution, detection source, and secret-exposure pattern, then decide which artifacts are malicious versus benign threat-intelligence lookups.

50m
8 tasks
50 points
Free

Start this operation

Investigation Tasks

Complete each task by investigating alerts and submitting your findings.

1

Establish Who Drove the Pipeline Activity

5

You have been paged on a suspected CI/CD compromise affecting the GitHub Actions environment. Early in the shift, an automated alert flags an unusual execution pattern on a build runner. Before reconstructing what happened, establish whose identity was driving the automated activity on the runner around that alert, so later steps can separate legitimate automation from abuse.

SOC{...}Hint available
2

Pin Down the Hijacked Pipeline Dependency

5

Having tied the runner activity to the automation account, turn to how the malicious code entered the pipeline. CloudTrail telemetry for the GitHub API proxy shows a third-party GitHub Action having its version tag rewritten in the days before the incident. Identify which GitHub Action dependency was tampered with to become the foothold in this supply-chain compromise.

SOC{...}Hint available
3

Trace the Setup Action Pulled Into the Run

10

With the tampered action identified, examine how the runner environment was staged when the poisoned workflow executed. The telemetry around the unusual connection from the Linux runner shows a third-party setup utility being pulled in during the environment-initialization phase of the job. Identify that setup action file referenced in the runner artifacts.

SOC{...}Hint available
4

Identify the Payload Executed on the Runner

10

The poisoned action and its setup dependency gave the attacker code execution inside the job. Runner telemetry then records a shell script being fetched from a GitHub Gist and run on the Linux runner. Identify the payload filename recorded in the runner telemetry for that execution.

SOC{...}Hint available
5

Determine How the Attacker Hunted for Secrets

5

With code running on the runner, the next goal was credential access. Shortly after the payload executed, the runner telemetry shows a tool sweeping the workflow filesystem and process memory for exposed secrets. Identify the secret-scanning tool that was invoked on the Linux runner.

SOC{...}Hint available
6

Characterize How the Stolen Secrets Were Staged

5

The scanning step surfaced credentials, and the attacker needed to get them out of the ephemeral runner. The GitHub Actions run exposed the harvested secret material directly in the publicly visible workflow logs, obscured rather than left in plaintext. Determine the encoding pattern recorded for that exposed secret data.

SOC{...}Hint available
7

Find What Opened the Network Path for Exfiltration

5

Exfiltrating the harvested data required reaching out from the environment. Around the same window, a CloudTrail event on the GitHub API proxy records an AuthorizeSecurityGroupIngress API call that loosened the network controls. Review the SIEM telemetry for that event to determine which source IP address initiated the security-group change.

SOC{...}Hint available
8

Assess Which Sensor Gave Us Visibility

5

Having reconstructed the supply-chain compromise end to end, close the loop on detection coverage. A potential breach on the GitHub API proxy was flagged and labeled in the log-management system during the incident. Determine which security monitoring component first ingested and labeled that event, so the team understands where its visibility came from.

SOC{...}Hint available

8 tasks · 50 points total

Training Tools

Skills You'll Build

Investigate realistic security alerts
SIEM log analysis
XDR log analysis
MITRE ATT&CK® technique identification
Triage decisions: escalate, investigate, or close
Evidence collection and documentation
Job-ready incident response methodology
Intermediate

Requires foundational alert triage skills. Multiple data sources to correlate.

Prerequisites

  • Basic understanding of security alerts
  • Familiarity with SIEM concepts
  • Familiarity with XDR concepts

Ready to investigate?

More Operations

View all
BeginnerSIEMFirewall

The Template That Read the Disk

The file-transfer portal that Tideglow Logistics' partners upload to spent a morning returning host files it was never meant to publish, and finished it running an administrator session nobody had logged into. The root cause is CVE-2024-4040 in CrushFTP 10.6.0. Walk the access logs and firewall traffic step by step to trace how a client holding no credentials turned a request parameter into a read of the host, and that read into a takeover.

25m25 pts
BeginnerEmailXDR

OneNote Attachment to RAT: A Guided First Investigation

A logistics contracts employee at Glacierline Freight opens an attachment that arrived in her inbox and clicks a button inside it. Minutes later her workstation is running something that appears on no software inventory and is talking to a host that no business process uses. Walk the email gateway records, the file artifacts and the endpoint process tree one step at a time, and work out for yourself which message carried the delivery, what landed on disk, and what ran.

15m25 pts
BeginnerSIEMFirewall

Hijacked Discord Invite to ClickFix Loader: Tracing the Lure

A finance analyst at Halcyon Wealth Partners followed a recycled Discord invite that quietly redirected the browser to a fake verification page. They did what the page asked, and inside the hour the workstation was running a remote-access trojan alongside an info-stealer that shipped browser data straight out of the building. Walk the proxy, endpoint and firewall evidence step by step to trace the lure, the loader, the C2 beacon and the data theft.

15m25 pts