[cao-evolution:compiler-security] Compiler security scan: one control.md shellcheck fix; all other findings upstream-owned (gh-aw, container images)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 62/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, javascript, shell
Direzione di ricerca
Leggi .github/workflows/shared/control.md e individua il passaggio cao_target_read_scope, in cui tre righe di output attivano shellcheck SC2129. Raggruppa le righe sotto un’unica redirezione come descritto nell’issue, quindi compila i workflow e conferma che il problema attribuito all’obiettivo è risolto. L’issue richiede di esaminare le differenze dei file di lock generati e di rieseguire la convalida completa e la scansione di sicurezza prima del merge.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
githubnext/gh-aw-cao compiled cleanly for structure (70/70 workflow sources → 70/70 lock files) but the full gh-aw validation/security suite exited non-zero (exit code 1). Of the ~50,000 lines of tool output, every supported finding traces to the upstream github/gh-aw compiler (generated boilerplate shared by all 70 workflows, including unresolved daily_ai_credits_*/safe-outputs-app-token template properties and compiler-selected container images/CLI installs) or to third-party base images (alpine:latest, Ubuntu/bind9/Python packages in gh-aw-firewall images, golang.org/x/net/Go stdlib CVEs, npm tar/http-cache-semantics advisories) and their licenses. Exactly one target-owned actionable finding exists: a trivial shellcheck style note (SC2129, not a security issue) in the repeated cao_target_read_scope step defined in .github/workflows/shared/control.md, which all 70 workflows import. Grant license-policy evidence is available (.grant.yaml present) and flags upstream image package licenses only — no target license-policy gap. Highest severity among supported tool output is Critical (Go stdlib/golang.org/x/net CVEs in the gh-aw-firewall/agent image), but it is entirely upstream-owned. Recommended next action: apply the one-line shellcheck style cleanup in control.md; no other target remediation is warranted from this run.
Action: Assign this issue to Copilot using Agent prompt below; review its pull request and merge only after rerunning the full compiler and security scan confirms that the target-owned actionable findings are resolved.
Failure details
- Target repository:
githubnext/gh-aw-cao - Compiler exit code:
1 - Workflow sources checked:
70 - Generated lock files checked:
70 - Result:
findings - Grant license-policy evidence:
available - Target-owned actionable findings:
1 - Upstream-owned context findings:
many (deduplicated below)
Findings table
| Tool | Workflow/Image | Owning component/repository | Ownership | Severity | Finding | Target remediation |
|---|---|---|---|---|---|---|
| shellcheck (actionlint) | shared/control.md → all 70 .lock.yml |
githubnext/gh-aw-cao (control.md) |
target-owned actionable | style (SC2129) | cao_target_read_scope step uses 3 sequential >> "$GITHUB_OUTPUT" redirects instead of a single grouped block |
Combine the three echo ... >> "$GITHUB_OUTPUT" lines into { ... } >> "$GITHUB_OUTPUT" in control.md |
| actionlint (expression) | all 70 .lock.yml |
github/gh-aw compiler | upstream-owned context | error | needs.activation.outputs.daily_ai_credits_total/threshold/guardrail_status/exceeded/estimated referenced in env blocks but never declared in the activation job's outputs: map (compiler template/output-wiring bug) |
None — report to github/gh-aw |
| actionlint (expression) | self-care-dashboard-performance.lock.yml, self-care-pages-health.lock.yml |
github/gh-aw compiler | upstream-owned context | error | steps.safe-outputs-app-token.outputs.token referenced but that step id is absent from the generated job |
None — report to github/gh-aw |
| zizmor | all 70 .lock.yml |
github/gh-aw compiler (control.md import + Pi/Copilot engine templates) |
upstream-owned context | Medium | secrets-outside-env (4006), overprovisioned-secrets (862) — compiler-generated auth-fallback expressions in every workflow |
None — report to github/gh-aw |
| zizmor | all 70 .lock.yml |
github/gh-aw compiler | upstream-owned context | Low | undocumented-permissions (416), template-injection (46, Pi/Copilot CLI invocation steps), obfuscation (1058), adhoc-packages (26, compiler-chosen npm install -g @earendil-works/pi-coding-agent / @playwright/cli) |
None — report to github/gh-aw |
| zizmor | several .lock.yml (e.g. dashboard-authoring-corpus, design-decision-gate) |
github/gh-aw compiler (safe-outputs checkout template) | upstream-owned context | Medium | artipacked — generated "Checkout repository (gh-aw default)" step after artifact download |
None — report to github/gh-aw |
| runner-guard | self-care-hosted-health.lock.yml |
githubnext/gh-aw-cao (self-care-hosted-health.md) checking the already-authorized hosted CAO service |
target-owned, but not actionable as a vulnerability | high (RGS-012) | Flags the documented, intentional health-check curl to (cao.githubnext.com/redacted) (an explicitly declared, trusted hosted CAO endpoint) carrying a masked OIDC/read token for a read-only smoke test |
None — expected behavior for this self-care workflow; no change needed |
| runner-guard | self-care-hosted-health.lock.yml |
github/gh-aw compiler (MCP Gateway template) | upstream-owned context | medium (RGS-019) | Generated "Start MCP Gateway" step interpolates a step output in a run: block |
None — report to github/gh-aw |
| runner-guard | agentic_commands.yml |
github/gh-aw compiler (slash-command router codegen) | upstream-owned context | medium (RGS-005) | Generated router file grants write permissions under issue_comment/pull_request_review_comment triggers |
None — report to github/gh-aw |
| grype | alpine:latest, ghcr.io/github/gh-aw-firewall/agent:0.28.44, and 7 other compiler-selected images |
Image publishers / github/gh-aw-firewall / github/gh-aw-mcpg / github/github-mcp-server | upstream-owned context | Critical/High/Medium/Low (277 unique CVE/GHSA IDs; highest: GO-2026-6612, GO-2026-6604 Critical in Go stdlib/golang.org/x/net) |
OS packages, Go stdlib, and npm (tar, http-cache-semantics) vulnerabilities in compiler-pinned runtime/firewall images |
None — report to owning image/component repository |
| grant | same 9 images | Image publishers | upstream-owned context | n/a (license policy) | 178 license-policy findings (e.g. GPL-2.0-only busybox/alpine-baselayout, MPL-2.0 ca-certificates-bundle) against target .grant.yaml's permissive baseline |
None — target's .grant.yaml policy already exists; any policy change is a separate reviewed decision, not an image fix |
Agent prompt
- Assign this issue to Copilot.
- Configure its MCP client to launch
gh aw mcp-serverover stdio from the target repository, then give it the prompt below. Require the server'sfixandcompiletools; never allow direct edits to generated.lock.ymlfiles. - Review the resulting pull request and rerun the same full compiler and security scan before merge. Require the target-owned actionable findings to be resolved; separately retained upstream-owned or unavailable evidence does not authorize target changes. If a target-owned finding needs human action, require the agent to stop and explain it.
Agent prompt
Fix only the target-owned actionable gh-aw compiler and security findings identified in this issue. Change only .github/workflows/*.md sources and directly related target-owned 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 the target-owned findings are resolved. Review generated lock-file diffs and preserve existing behavior. Do not add or change .grant.yaml unless a separately reviewed target license-policy decision already requires it. Do not rebuild, modify, or make dependency decisions for upstream images or components; leave upstream-owned context unchanged and stop with a concise ownership explanation if the remaining finding cannot be fixed safely in this repository.
Specifically: in .github/workflows/shared/control.md, locate the cao_target_read_scope step (and any other steps matching the same pattern) whose run: block uses three sequential echo "..." >> "$GITHUB_OUTPUT" lines, and combine them into a single grouped redirect, e.g. { echo "owner=$owner"; echo "repository=$repository"; echo "full_name=$owner/$repository"; } >> "$GITHUB_OUTPUT", to resolve shellcheck SC2129 across all 70 compiled workflows.
Raw evidence
- Compiler summary:
Checked 70 workflow(s),Found 486 issue(s) (486 error(s))— 139 shellcheck, 347 expression (alldaily_ai_credits_*/safe-outputs-app-tokentemplate-wiring gaps). - zizmor:
secrets-outside-env×4006,obfuscation×1058,overprovisioned-secrets×862,undocumented-permissions×416,artipacked×49,template-injection×46,adhoc-packages×26 — all Low/Medium, spanning all 70 generated lock files identically (compiler-template origin confirmed: patterns are absent from every checked.mdsource and only appear in generated.lock.yml/agentic_commands.yml). - poutine: no findings (clean).
- runner-guard: 3 findings total —
RGS-012(self-care-hosted-health, expected hosted-CAO health check),RGS-019(self-care-hosted-health MCP Gateway template),RGS-005(agentic_commands.yml router template). - syft: scanned 9 compiler-selected container images (alpine:latest; gh-aw-firewall agent/api-proxy/squid/cli-proxy 0.28.44; gh-aw-mcpg v0.4.29; gh-aw-node; github-mcp-server v1.12.2; node:lts-alpine).
- grype: 277 unique CVE/advisory IDs across those 9 images (19 Critical, 177 High, 515 Medium-weighted rows, 119 Low).
- grant: 178 license-policy violations, entirely within the same 9 upstream images, evaluated against the target's existing
.grant.yaml. - No token-like or credential-like values were present in the reviewed tool output.
Control plane context
- Correlation ID:
38184403022-444 - Central repository:
githubnext/gh-aw-cao - Control plane run: https://github.com/githubnext/gh-aw-cao/actions/runs/38184403022
Generated by 🛡️ CAO Evolution / AW Compiler Security · copilot · auto · 271.6 AIC · ⌖ 12.6 AIC · ⊞ 16.2K · ◷
- expires on Oct 26, 2026, 12:10 AM UTC
- Lingua principale
- JavaScript
- Stelle
- 8
- Fork
- 5
- Merge medio
- 2h 1m
- PR unite (30g)
- 851
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di githubnext/gh-cao
-
repo-assist repo-assist:issue-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
githubnext/gh-cao#19642 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows self-care self-care:reactive-ui-expert
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
githubnext/gh-cao#19591 ·
I maintainer di solito rispondono entro 1 giorno
-
software-development-practices software-development-practices:nist-ssdf
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
githubnext/gh-cao#19534 ·
I maintainer di solito rispondono entro 1 giorno
-
cao-evolution cao-evolution:compiler-security
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
githubnext/gh-cao#19373 ·
I maintainer di solito rispondono entro 1 giorno
-
self-care self-care:dashboard-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
githubnext/gh-cao#18518 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di githubnext/gh-cao
Issue simili
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
melodic-software/claude-code-plugins#9619 ·
I maintainer di solito rispondono entro 1 giorno
-
bug Frontend P2-medium UI UX
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
Deepak3699/Ai_Mentor#427 ·
I maintainer di solito rispondono entro 1 giorno
-
resource.reload() while params is in error switches the resource to 'idle' instead of retryingApertaarea: core
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
venn: a name that starts with set-, union-, text- or style- followed by a letter is a parse errorAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
obsidianmd/pele#65 ·
I maintainer di solito rispondono entro 3 giorni
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
11ty/buildawesome#4407 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno