githubnext / githubnext/gh-aw-cao

[aw-doctor:compiler-security] githubnext/gh-aw-cao: compiler+security findings (2 actionlint errors, 34 critical/172+ high grype CVEs, 1250 grant license find

Closed
#9,974 0 comments 0 reactions 0 assignees View on GitHub
aw-doctor aw-doctor:compiler-security
Dominant language
JavaScript
Stars
3
Forks
1
Avg merge
49m
Merged PRs (30d)
837

Description

Compiling all 51 gh-aw workflow sources (51 generated lock files) in `githubnext/gh-aw-cao` finished with **exit code 1** — the run is not clean. Two `actionlint` type errors (High, blocking) reference an undefined `safe-outputs-app-token` step output in two generated lock files, `zizmor` reported 49 High "github-app" token-scope findings plus ~1,150 Medium/Low/Informational findings across all 51 workflows, `poutine`/`runner-guard` flagged one Medium excessive-permissions-on-untrusted-trigger finding, `grype` found 34 Critical and 172 High CVEs across the 9 scanned container images (worst: OpenSSL `CVE-2026-63073`/`CVE-2026-75803` in `alpine:latest`, `libcurl` CVEs in `gh-aw-mcpg`), and `grant` failed strict-mode license-policy checks with 1,250 findings across those same images. Highest-severity supported finding: **Critical** (grype container CVEs). Recommended next action: assign the remediation issue to Copilot to fix the actionlint/zizmor workflow-source issues first (compiler-blocking), then track image/license findings separately since they originate from upstream base images, not this repo's workflow sources.

**Action:** Assign this issue to Copilot using **Agent prompt** below; review its pull request and merge only after the full compiler and security scan passes.

Failure details

- **Target repository**: `githubnext/gh-aw-cao`
- **Compiler exit code**: `1`
- **Workflow sources checked**: `51`
- **Generated lock files checked**: `51`
- **Result**: `findings`

| Tool | Workflow / Image | Severity | Finding | Remediation |
|---|---|---|---|---|
| actionlint | `self-care-dashboard-performance.lock.yml`, `self-care-pages-health.lock.yml` | High (blocking) | `safe-outputs-app-token` step output referenced in an expression but not defined in the generated step-outputs type (2 errors) | Compiler-generated defect: fix the gh-aw template/source emitting this reference so the referenced step exists, then recompile |
| zizmor | 41 of 51 workflows | High | `github-app`: dangerous use of GitHub App tokens (49 findings) | Review each flagged token usage against zizmor's github-app guidance; scope/rotate as needed |
| zizmor | all 51 workflows | Medium | `secrets-outside-env`: secrets referenced without a dedicated environment (418 findings) | Move secret-referencing jobs into a dedicated `environment:` or confirm this is an accepted generated-template pattern |
| zizmor | ~15 workflows (e.g. `dashboard-authoring-corpus.lock.yml`, `dependabot-release-train-updater.lock.yml`) | Medium | `artipacked`: credential persistence through uploaded artifacts (29 findings) | Ensure checkout/credential steps don't persist tokens into artifacts |
| poutine / runner-guard | `agentic_commands.yml` | Medium | RGS-005: write-level `permissions:` on a job reachable from an untrusted-trigger command file | Confirm this command dispatch path can't be triggered by external/untrusted actors, or reduce permissions |
| zizmor | many workflows | Low | `undocumented-permissions` (294), `adhoc-packages` (26), `obfuscation` (3) | Add explanatory comments to `permissions:` blocks; pin ad-hoc package installs |
| zizmor | `pr-reviewer.lock.yml` and others | Informational | `anonymous-definition` (302), `template-injection` (9) | Non-blocking; optional cleanup |
| grype | 9 container images (`alpine:latest`, `gh-aw-mcpg:v0.4.20`, `gh-aw-firewall/*:0.28.15`, `gh-aw-node`, `github-mcp-server:v1.12.1`, `node:lts-alpine`) | Critical / High | 34 Critical + 172 High CVEs; worst include `CVE-2026-63073`/`CVE-2026-75803` (OpenSSL `libcrypto3`/`libssl3` in `alpine:latest`), `CVE-2026-18924`/`CVE-2026-19931` (`libcurl`, multiple images) | Bump base images / vendor package versions to patched releases; these originate upstream, not from this repo's workflow sources |
| grant | same 9 container images | error (strict-mode policy) | 1,250 license-policy violations causing `grant` to exit non-zero | Review `.poutine.yml`/grant license allowlist policy against the flagged packages, or confirm strict mode is intentional for these upstream images |

Per-image grype Critical/High counts: `gh-aw-firewall/agent` 0C/4H, `gh-aw-firewall/api-proxy` 4C/18H, `gh-aw-firewall/cli-proxy` 4C/18H, `gh-aw-firewall/squid` 10C/35H, `gh-aw-mcpg` 4C/48H, `gh-aw-node` 2C/11H, `github-mcp-server` 2C/6H, `alpine:latest` 4C/14H, `node:lts-alpine` 4C/18H.

Agent prompt

1. Assign this issue to Copilot.
2. Configure its MCP client to launch `gh aw mcp-server` over stdio from the target repository, then give it the prompt below. Require the server's `fix` and `compile` tools; never allow direct edits to generated `.lock.yml` files.
3. Review the resulting pull request and require the same full compiler and security scan to pass before merge. If a finding needs human action, require the agent to stop and explain it.

**Agent prompt**

Fix the reported gh-aw compiler and security findings in this repository. Change only `.github/workflows/*.md` sources and directly related files; never edit generated `.lock.yml` files. Use the gh-aw MCP server's `fix` and `compile` tools, rerunning compilation with strict validation, model checks, actionlint, shellcheck, yamllint, zizmor, poutine, runner-guard, grant, grype, and syft until clean. Prioritize the two actionlint "expression" errors referencing `safe-outputs-app-token` in `self-care-dashboard-performance.md` and `self-care-pages-health.md` since these block a clean compile. Review generated lock-file diffs, preserve existing behavior, and stop with a concise explanation if a finding cannot be fixed safely (for example, container-image CVEs or license findings that originate from upstream base images rather than this repository's workflow sources).

Raw evidence

Severity totals across all tools in this run: 34 Critical, 221 High, 788 Medium, 377 Low, 18 Unknown/Negligible-adjacent.

Zizmor rule totals: `secrets-outside-env` 418, `anonymous-definition` 302, `undocumented-permissions` 294, `github-app` 49, `artipacked` 29, `adhoc-packages` 26, `template-injection` 9, `obfuscation` 3.

Actionlint summary: checked 51 workflows, found 2 issues (2 errors), both `expression` type.

Grant summary: `grant found 1250 license policy finding(s) in container images` (strict mode failure).

Untracked file noted in git status after the run: `.poutine.yml` (new, not yet committed — likely a runner-guard/poutine policy file generated or added during this scan; review before committing).

Full raw compiler/scanner output (`report.txt`) is 721 KB / 10,027 lines and has been redacted of any token-like values in this summary; no credential values were reproduced here.

Control plane context

- Correlation ID: `34618204185-1138`
- Central repository: `githubnext/gh-aw-cao`
- Control plane run URL: `https://github.com/githubnext/gh-aw-cao/actions/runs/34618204185`

> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34618204185) · copilot · auto · 48.5 AIC · ⌖ 16.1 AIC · ⊞ 12.4K · [◷](https://github.com/search?q=repo%3Agithubnext%2Fgh-aw-cao+is%3Aissue+%22gh-aw-workflow-call-id%3A+githubnext%2Fgh-aw-cao%2Faw-maintenance-compiler-security%22&type=issues)
> - [x] expires on Sep 25, 2026, 4:08 PM UTC

Contributor guide

Open the contributing guide

Research direction

Start with the gh-aw workflow sources self-care-dashboard-performance.md and self-care-pages-health.md, then run the compiler and inspect the generated lock-file diffs without editing those files directly. Review the actionlint, zizmor, poutine, runner-guard, grant, and grype results; done means the compiler and security scans pass or remaining upstream image and license findings are explicitly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions
Domain
ci-cd, devops, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.