githubnext / githubnext/gh-aw-cao
[aw-doctor:compiler-security] githubnext/gh-aw-cao: compiler & security scan findings (exit code 1, 20 critical CVEs, 1250 license violations)
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 1
- Avg merge
- 49m
- Merged PRs (30d)
- 837
Description
Target `githubnext/gh-aw-cao` failed compiler validation (exit code 1). Across 47 workflow sources / 47 compiled locks, the full gh-aw suite found: 2 actionlint errors, 1324 zizmor findings (20 Critical, 164 High, 786 Medium, 354 Low, including 45 `github-app` dangerous-token-use High findings), 20 Critical + many High container CVEs across base images (openssl/libssl3/libcrypto3, Go stdlib, npm deps), and 1250 container license-policy violations (mostly GPL-2.0/LGPL packages in Alpine/node base images). Highest severity: Critical CVE-2026-75803 (libssl3/libcrypto3) present in nearly every scanned image. Recommended next action: assign to Copilot for a `fix`+`compile` remediation pass, prioritizing the actionlint blocking errors and the `github-app` High findings first, then base-image CVE/license issues (likely require upstream image bumps, may need human follow-up if a fix isn't yet published upstream).
**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, self-care-pages-health.lock.yml | error | `steps.safe-outputs-app-token` not defined in step-outputs object type | Fix source `.md` template referencing that step output; recompile |
| zizmor | 45 workflow lock files (e.g. aw-doctor, aw-failures-investigator, aw-maintenance-compiler-security, dependabot*, eu-cra-compliance-*) | High | `github-app`: dangerous use of GitHub App tokens | Review app-token usage per zizmor guidance; scope/guard token exposure |
| zizmor | dependabot-release-train-updater.lock.yml | High | `github-app` dangerous use (duplicate instance) | Same as above |
| zizmor | many workflows | Medium | `secrets-outside-env`: secrets referenced without dedicated environment | Move secret refs into scoped `environment:` blocks |
| zizmor | many workflows | Low | `undocumented-permissions`: permissions blocks lack explanatory comments | Add comments explaining each permission scope |
| grype | alpine:latest, node:lts-alpine, ghcr.io/github/gh-aw-firewall/squid:0.28.14, ghcr.io/github/gh-aw-mcpg:v0.4.18 | Critical | CVE-2026-75803: libssl3/libcrypto3@3.5.7-r0 (fix 3.5.8-r0) | Bump base image / rebuild once fixed package available |
| grype | ghcr.io/github/gh-aw-firewall/agent v1.11.0 (debian-based) | Critical | CVE-2026-75803, CVE-2026-5450: libssl3/libc6 | Bump base image |
| grype | v0.4.18 image | High | GO-2026-6090, GO-2026-6089, GO-2026-5972, GO-2026-5942, GO-2026-5026, GO-2026-4970, GO-2026-5037: Go stdlib@go1.26.3/1.26.4 | Rebuild image with patched Go toolchain |
| grype | 0.28.14 image | High | GHSA-rgw5-rvv9-x895, GHSA-mh99-v99m-4gvg: brace-expansion; GHSA-r292-9mhp-454m: tar; GHSA-mwp4-54f8-5fhr: ip-address | Update npm deps in image build |
| grant | alpine, node, ghcr.io/github/gh-aw-firewall/*, gh-aw-mcpg, gh-aw-node, github-mcp-server | unknown (policy) | 1250 license policy violations (mostly GPL-2.0/LGPL-2.1 base-layer packages: alpine-baselayout, busybox-binsh, libstdc++, musl-utils, scanelf, etc.) | Confirm license policy scope for base-OS packages vs. bundled deps; adjust `.poutine.yml`/grant allowlist or swap base images if GPL packages are unacceptable |
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 from deterministic compiler run:
```
Target: githubnext/gh-aw-cao
Exit code: 1
Workflow sources: 47
Compiled locks: 47
```
Zizmor severity totals: 20 Critical, 164 High, 786 Medium, 354 Low.
Actionlint errors (2):
```
.github/workflows/self-care-dashboard-performance.lock.yml:2283:26: error: [expression] property "safe-outputs-app-token" is not defined in object type ...
.github/workflows/self-care-pages-health.lock.yml:2189:26: error: [expression] property "safe-outputs-app-token" is not defined in object type ...
```
Critical container CVEs (20, all CVE-2026-75803/CVE-2026-63073/CVE-2026-5450 variants across libssl3/libcrypto3/libc6) affecting images: alpine:latest, node:lts-alpine, ghcr.io/github/gh-aw-firewall/squid:0.28.14, ghcr.io/github/gh-aw-mcpg:v0.4.18, and a Debian-based agent image v1.11.0.
License policy violations: 1250 findings, predominantly GPL-2.0-only/GPL-2.0-or-later/LGPL-2.1-or-later base OS packages (e.g. alpine-baselayout, busybox-binsh, libstdc++, musl-utils, scanelf) across all scanned images (alpine, node, gh-aw-firewall/*, gh-aw-mcpg, gh-aw-node, github-mcp-server). A new untracked `.poutine.yml` file was also produced by the compiler run (see git-status) and was not present before — reviewers should confirm whether that generated policy config should be committed.
No credential-like values were present in the raw tool output; none redacted.
Control plane context
- Correlation ID: 34246744244-94
- Central repository: githubnext/gh-aw-cao
- Control plane run URL: https://github.com/githubnext/gh-aw-cao/actions/runs/34246744244
> Generated by [:shield: AW Doctor / Compiler Security](https://github.com/githubnext/gh-aw-cao/actions/runs/34247621765) · copilot · auto · 45.6 AIC · ⌖ 12 AIC · ⊞ 14.2K · [◷](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 22, 2026, 4:13 PM UTC
Contributor guide
Research direction
Start by locating the .md sources for self-care-dashboard-performance.lock.yml and self-care-pages-health.lock.yml, then inspect the gh-aw MCP server's fix and compile workflow. Do not edit generated .lock.yml files; review the resulting diffs and rerun the listed compiler and security scans. Done means the full scan passes, or any upstream-blocked finding is clearly documented for human follow-up.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, github-actions, go, javascript
- Domain
- ci-cd, devops, security, tooling
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100