githubnext / githubnext/gh-aw-cao

[aw-doctor:compiler-security] Compiler & security scan findings: 2 actionlint errors, 45 High zizmor findings, container CVEs & license violations

Closed
#8,870 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 47 GitHub Agentic Workflow sources in `githubnext/gh-aw-cao` (exit code 1) surfaced a broad mix of findings across the full validator/linter/scanner suite: 2 actionlint expression errors, 45 zizmor High `github-app` dangerous-token-use findings plus hundreds of Medium/Low/Informational zizmor findings, 1 runner-guard Medium excessive-permissions finding (`RGS-005`), 34 Critical and 217 High container vulnerabilities (grype) across the firewall/mcpg/node/github-mcp-server images, and 1250 license policy violations (grant, strict mode failed) in the same images. Highest severity: Critical CVEs (e.g. CVE-2026-18924, CVE-2026-19931, CVE-2026-63073, CVE-2026-75803) in `curl`/`libcurl`/`openssl` packages inside `ghcr.io/github/gh-aw-firewall/*` and `ghcr.io/github/gh-aw-mcpg` images. Recommended next action: assign remediation to Copilot for the actionlint/zizmor/runner-guard source-level fixes; the container CVE and license findings stem from upstream base images and should be tracked for image bumps.

**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**: `47`
- **Generated lock files checked**: `47`
- **Result**: `findings`

| Tool | Workflow / Image | Severity | Finding | Remediation |
|------|-------------------|----------|---------|-------------|
| actionlint | self-care-dashboard-performance.lock.yml:2302, self-care-pages-health.lock.yml:2208 | error | `safe-outputs-app-token` step output referenced but not defined in that job's needs/outputs type | Fix the `.md` source's safe-outputs token wiring so the referencing job declares the producing step as a dependency, then recompile |
| zizmor | 45 lock files (e.g. aw-doctor, aw-failures-investigator, dependabot, self-care-*, eu-cra-compliance-*, optimization-*, software-development-practices-*, uk-ai-advisory*) | High | `github-app`: dangerous use of GitHub App tokens | Review each flagged step's use of app-token outputs; scope token usage per zizmor guidance ((docs.zizmor.sh/redacted) |
| zizmor | ~402 occurrences across many workflows | Medium | `secrets-outside-env`: secrets referenced without a dedicated environment | Route secret references through a job/step `environment:` block |
| zizmor | ~29 occurrences | Medium | `artipacked`: credential persistence risk in checkout/artifacts | Review checkout/artifact steps per zizmor guidance |
| zizmor | ~271 occurrences | Low | `undocumented-permissions`: permissions blocks lack explanatory comments | Add comments explaining each granted permission |
| zizmor | ~26 occurrences | Low | `adhoc-packages`: ad-hoc package installs | Pin/vendor package installs per zizmor guidance |
| zizmor | ~279 occurrences | Informational | `anonymous-definition`: workflow/action lacks a `name:` | Add descriptive `name:` fields |
| zizmor | 9 occurrences | Informational | `template-injection` | Review flagged expressions for injection risk |
| runner-guard | agentic_commands.yml:1 | Medium (RGS-005) | Excessive permissions (write-level) on a workflow triggered by an untrusted event type | Reduce permissions to read-only or gate write scopes behind trusted-trigger conditions |
| grype | ghcr.io/github/gh-aw-firewall/api-proxy, cli-proxy, squid:0.28.14 | Critical | CVE-2026-18924, CVE-2026-19931: curl/libcurl (fix 8.22.0-r0) | Bump base image / package to patched curl release |
| grype | ghcr.io/github/gh-aw-firewall/squid:0.28.14, ghcr.io/github/gh-aw-mcpg:v0.4.20 | Critical | CVE-2026-63073, CVE-2026-75803: libcrypto3/libssl3/openssl (fix 3.5.8-r0) | Bump base image to patched OpenSSL release |
| grype | ghcr.io/github/gh-aw-firewall/agent:0.28.14 | High | GHSA-rgw5-rvv9-x895, GHSA-mh99-v99m-4gvg: brace-expansion (fix 5.0.9/5.0.8); GHSA-r292-9mhp-454m: tar (fix 7.5.21); GHSA-mwp4-54f8-5fhr: ip-address (fix 10.3.1) | Update npm dependencies bundled in the firewall agent image |
| grype | 34 Critical / 217 High total across 7 scanned images | Critical/High | Aggregate container vulnerability count (agent, api-proxy, cli-proxy, squid, mcpg, gh-aw-node, github-mcp-server) | Track upstream image updates; not fixable from workflow `.md` sources |
| grant | 9 container images | error (strict mode) | 1250 license policy findings (e.g. `libfribidi0` LGPL-2.1, `liberror-perl` GPL/Artistic mix, many ISC/MIT/BSD packages) | Review license policy exceptions or track upstream base-image licensing; not fixable from workflow `.md` sources |
| shellcheck | 12 grader scripts (e.g. `.github/graders/*-operational-value.sh`) | warning (SC2034) | Unused variables (`WORKFLOW_NAME`, `SOURCE_PATH`, etc.) assigned but apparently unused | Export or remove unused grader variables |

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. Review generated lock-file diffs, preserve existing behavior, and stop with a concise explanation if a finding cannot be fixed safely.

Raw evidence

Summary counts from the compiler run:
- actionlint: 47 files checked, 2 issues (2 errors, both `expression` category)
- zizmor: 402 Medium `secrets-outside-env`, 279 Informational `anonymous-definition`, 271 Low `undocumented-permissions`, 45 High `github-app`, 29 Medium `artipacked`, 26 Low `adhoc-packages`, 9 Informational `template-injection`, 3 Low `obfuscation`
- runner-guard: 1 Medium finding (`RGS-005`) in `agentic_commands.yml`
- grype (9 container images scanned via syft first): 34 Critical, 217 High, plus Medium/Low/Negligible/Unknown across `gh-aw-firewall/agent`, `gh-aw-firewall/api-proxy`, `gh-aw-firewall/cli-proxy`, `gh-aw-firewall/squid`, `gh-aw-mcpg`, `gh-aw-node`, `github-mcp-server`
- grant: strict mode failed with 1250 license policy findings across the same 9 images
- shellcheck: warnings in 12 `.sh` grader scripts (all SC2034 unused-variable style)
- yamllint: ran on 47 files (no findings surfaced beyond the above)

No token-like or credential-like values were present in the scanned output.

Control plane context

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

> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34516878347) · copilot · auto · 37.9 AIC · ⌖ 8.65 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 24, 2026, 7:11 PM UTC

Contributor guide

Open the contributing guide

Research direction

Start with the compiler findings for `.github/workflows/*.md`, especially the sources for `self-care-dashboard-performance` and `self-care-pages-health`, then inspect `agentic_commands.yml` and the affected `.github/graders/*.sh` scripts. Use the gh-aw MCP server's `fix` and `compile` tools and do not edit generated `.lock.yml` files. Done means the full compiler and security scan passes, or remaining upstream image and license findings are clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions, shell
Domain
ci-cd, devops, security
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.