# gha_workflow_lint

Security audit of a GitHub Actions workflow YAML (zizmor / actionlint style): pwn-request checkouts under pull_request_target / workflow_run, script injection from attacker-controlled ${{ github.event.* }} contexts in run: and github-script, actions not pinned to a commit SHA, missing or write-all permissions, toJSON(secrets), secrets in workflow-wide env, self-hosted runners on PR triggers, persisted checkout credentials, disabled ::set-env / ::add-path commands, curl | bash, cache poisoning in release workflows, artifact poisoning, spoofable bot-actor conditions and hard-coded credentials. Findings carry line numbers, severity and the fix. Price: $0.003 USDC per successful call (x402, Solana). Same tool over HTTPS: POST https://scorptech.it.com/api/x402/v1/gha-workflow-lint

Agent View of the PolicyLayer registry record for `gha_workflow_lint`. HTML page: https://policylayer.com/tools/com-it-scorptech-x402/gha-workflow-lint

## Facts

- Tool: `gha_workflow_lint`
- Server: ScorpTech x402 API (`https://scorptech.it.com/api/x402/mcp`) — https://policylayer.com/tools/com-it-scorptech-x402.md
- Homepage: https://github.com/https://scorptech.it.com/api/x402/mcp
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 1 (1 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `workflow` | string | yes | Workflow file content (.github/workflows/*.yml) |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "gha_workflow_lint",
    "arguments": {
      "workflow": "<workflow>"
    }
  }
}
```

## Why gha_workflow_lint is rated High

gha_workflow_lint triggers real processes with real consequences. An agent gone sideways doesn't fire it once. It starts dozens of builds, sends mass notifications, or burns through compute before anyone looks up.

## Use case

AI agents invoke gha_workflow_lint to trigger actions in ScorpTech x402 API. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches ScorpTech x402 API:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "gha_workflow_lint": {
      "limits": [
        {
          "counter": "gha_workflow_lint_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on ScorpTech x402 API (1011)

- `collatz_drop` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/collatz-drop.md
- `dedupe_records` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/dedupe-records.md
- `evm_selector_decode` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/evm-selector-decode.md
- `frames_timecode` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/frames-timecode.md
- `ip_reputation` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/ip-reputation.md
- `led_resistor` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/led-resistor.md
- `ruler_odd` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/ruler-odd.md
- `sql_format` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/sql-format.md
- `timecode_diff` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/timecode-diff.md
- `timecode_duration` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/timecode-duration.md
- `timecode_frames` — Destructive — https://policylayer.com/tools/com-it-scorptech-x402/timecode-frames.md
- `abi_encode` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/abi-encode.md
- `apery_term` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/apery-term.md
- `ballot` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/ballot.md
- `baum_sweet` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/baum-sweet.md
- `binom` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/binom.md
- `bit_subset` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/bit-subset.md
- `biunitary_sigma` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/biunitary-sigma.md
- `champernowne_start` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/champernowne-start.md
- `clinical_trials` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/clinical-trials.md
- `coin_min` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/coin-min.md
- `coin_ways` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/coin-ways.md
- `color_palette` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/color-palette.md
- `compound_interest` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/compound-interest.md
- `cron_explain` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/cron-explain.md
- `curl_to_code` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/curl-to-code.md
- `date_calc` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/date-calc.md
- `delannoy` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/delannoy.md
- `delannoy_sum` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/delannoy-sum.md
- `dmarc_report_parse` — Execute — https://policylayer.com/tools/com-it-scorptech-x402/dmarc-report-parse.md
- …and 981 more: https://policylayer.com/tools/com-it-scorptech-x402.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-it-scorptech-x402 · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-it-scorptech-x402
