Skip to content

[static-analysis] RGS-018: Suspicious Payload Execution Pattern (34 workflows) #30532

@github-actions

Description

@github-actions

Runner-Guard Security Finding

Rule: RGS-018 — Suspicious Payload Execution Pattern
Severity: High
Affected Workflows: 34
Total Findings: 37

Description

Runner-Guard's taint analysis scanner detected run: blocks matching code patterns associated with obfuscated payload execution or known indicators of compromise (IOCs) from active supply chain attack campaigns. This includes eval+decode chains (e.g., eval(base64.b64decode(...)), base64 --decode | bash), known malware marker variables, persistence file paths, and C2 communication patterns.

These patterns are loaded from Runner Guard's threat signature database (updated independently of the scanner binary). A match against a known IOC indicates potential active compromise; a match against a dangerous execution pattern indicates susceptibility to this class of supply chain attack.

Impact

If any of the flagged run: blocks contain genuine IOC patterns:

  • Active compromise of the CI/CD pipeline is possible
  • Attacker-controlled code may execute in a privileged runner context
  • Secrets, tokens, or deployment credentials may be exfiltrated

Affected Workflows

api-consumption-report, audit-workflows, changeset, ci-coach, cli-version-checker, cloclo, copilot-agent-analysis, copilot-opt, copilot-pr-merged-report, copilot-pr-nlp-analysis, copilot-pr-prompt-analysis, copilot-session-insights, daily-cli-performance, daily-issues-report, daily-news, daily-safe-output-optimizer, daily-sentrux-report, deep-report, discussion-task-miner, go-logger, issue-arborist, org-health-report, prompt-clustering-analysis, safe-output-health, scout, smoke-claude, smoke-codex, smoke-copilot-arm, smoke-copilot, smoke-crush, smoke-gemini, smoke-opencode, smoke-pi, stale-repo-identifier

Sample Findings

The pattern recurs at steps like "Setup jq utilities directory" and "Write MCP Scripts Config" in multiple workflows. The scanner flags these steps based on patterns in its signature database.

Example flagged location (cloclo.lock.yml:570):

- name: Setup jq utilities directory
  # (step flagged by RGS-018 IOC pattern matcher)

Example flagged location (smoke-pi.lock.yml:746):

- name: Write MCP Scripts Config
  run: |
    mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs"

Remediation

  1. Triage each flagged step — review the actual run: block content for the flagged line numbers against runner-guard's known IOC patterns
  2. Common false positive pattern: Steps with names like "Setup jq utilities directory" or "Write MCP Scripts Config" that create directories — these may match path-based IOC signatures (e.g., /tmp/ persistence paths)
  3. If legitimate: Add a # runner-guard:ignore RGS-018 comment or update the runner-guard allowlist for known-safe patterns
  4. If suspicious: Immediately audit the step's source and the action that introduced it
  5. Prevent recurrence: Pin all action versions with SHA, review any steps that write to temp directories or execute shell scripts

Detected by runner-guard v2.6.0 — CI/CD source-to-sink vulnerability scanner
Workflow run: https://github.com/github/gh-aw/actions/runs/25418588621

Generated by Static Analysis Report · ● 451.6K ·

  • expires on May 13, 2026, 5:52 AM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions