Skip to content

[static-analysis] RGS-018: Suspicious Payload Execution Pattern in daily-sentrux-report.lock.ymlΒ #46532

Description

@github-actions

🚨 Runner-Guard Security Finding

Rule: RGS-018 β€” Suspicious Payload Execution Pattern
Severity: High
File: .github/workflows/daily-sentrux-report.lock.yml
Line: 512 (source: .github/workflows/daily-sentrux-report.md, Install sentrux step)

Description

Runner-guard flagged a run: block whose code matches a dangerous-execution pattern from its supply-chain threat database. The Install sentrux step downloads a release binary and executes it without integrity verification:

- name: Install sentrux
  run: |
    SENTRUX_VERSION="0.5.7"
    curl -fsSL -o /tmp/gh-aw/agent/sentrux "https://github.com/sentrux/sentrux/releases/download/v${SENTRUX_VERSION}/sentrux-linux-x86_64"
    chmod +x /tmp/gh-aw/agent/sentrux
    sudo mv /tmp/gh-aw/agent/sentrux /usr/local/bin/sentrux
    sentrux --version

Impact

The binary is fetched over the network and executed (and installed to /usr/local/bin with sudo) with no checksum or signature verification. If the release asset were replaced β€” via a compromised upstream repo, a hijacked release, or a MITM on the redirect chain β€” the runner would execute attacker-controlled code with the job's token and secret scope. This is the class of supply-chain risk RGS-018 exists to surface.

Remediation

Pin and verify the expected SHA-256 before making the binary executable:

- name: Install sentrux
  run: |
    SENTRUX_VERSION="0.5.7"
    SENTRUX_SHA256="<pinned-sha256-of-sentrux-linux-x86_64>"
    curl -fsSL -o /tmp/gh-aw/agent/sentrux "https://github.com/sentrux/sentrux/releases/download/v${SENTRUX_VERSION}/sentrux-linux-x86_64"
    echo "${SENTRUX_SHA256}  /tmp/gh-aw/agent/sentrux" | sha256sum -c -
    chmod +x /tmp/gh-aw/agent/sentrux
    sudo mv /tmp/gh-aw/agent/sentrux /usr/local/bin/sentrux

Because this step lives in the source workflow markdown, update .github/workflows/daily-sentrux-report.md and recompile so the .lock.yml regenerates. If sentrux publishes a checksums file or a pinnable install action, prefer that.

Note: the other two High RGS-018 hits this run (daily-cli-performance.lock.yml:791, smoke-claude.lock.yml:1307) anchor on generated Write MCP Scripts Config / generate_safe_outputs_tools.cjs framework scaffolding and are false positives β€” no fix required.


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

Generated by πŸ“Š Static Analysis Report Β· 207.6 AIC Β· βŒ– 29.5 AIC Β· ⊞ 10K Β· β—·

  • expires on Jul 25, 2026, 9:53 PM UTC-08:00

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions