Static Analysis Report - 2026-03-04 #19533
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-03-05T06:32:26.627Z.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Analysis Summary
Daily static analysis scan completed for 165 workflows across the
github/gh-awrepository using three tools: actionlint, zizmor, and poutine. All findings are stable compared to yesterday — no new issues detected, no resolutions. The security posture remains unchanged.Findings by Tool
Clustered Findings by Tool and Type
Zizmor Security Findings
artipackeddaily-copilot-token-reporttemplate-injectioncontribution-checkPoutine Supply Chain Findings
pr_runs_on_self_hostedsmoke-copilot-armunverified_script_execcopilot-setup-steps,daily-copilot-token-reportunpinnable_actiondaily-perf-improver/build-steps,daily-test-improver/coverage-stepsgithub_action_from_unverified_creator_usedActionlint Linting Issues
permissions/copilot-requestsTop Priority Issues
1. Artipacked — Credential Persistence via Artifacts
daily-copilot-token-reportactions/checkoutstepactions/checkoutis used in a job that also uploads artifacts, Git credentials persisted by checkout may be included in the artifact bundle, enabling credential theft if artifacts are accessed by untrusted actors.2. PR Runs on Self-Hosted Runner
smoke-copilot-armruns-on: ubuntu-24.04-arm3. Unverified Script Execution (
curl | bash)copilot-setup-steps.yml(line 17),daily-copilot-token-report(line 317)raw.githubusercontent.comand piped directly to bash without integrity verification. If the source branch is compromised, malicious code would execute in the workflow.Fix Suggestion for
artipacked(Highest Real Severity)Issue: Credential persistence through GitHub Actions artifacts
Severity: Medium
Affected Workflows: 1 (
daily-copilot-token-report)Prompt to Copilot Agent:
All Findings Details
Zizmor — Detailed Findings
contribution-check— template-injection (Informational, ×3).github/workflows/contribution-check.lock.ymldaily-copilot-token-report— artipacked (Medium, ×1).github/workflows/daily-copilot-token-report.lock.ymlactions/checkoutpersists Git credentials by default. This workflow also installs gh-aw and uploads workflow artifacts. Credentials in.git/configcould be exfiltrated through artifact downloads.persist-credentials: falseto the checkout step.Poutine — Detailed Findings
smoke-copilot-arm— pr_runs_on_self_hosted (Warning).github/workflows/smoke-copilot-arm.lock.ymlagentjob runs onubuntu-24.04-arm(self-hosted ARM runner). Pull request triggers on self-hosted runners are a risk vector for fork-based code injection attacks.copilot-setup-steps/daily-copilot-token-report— unverified_script_exec (Note, ×2)copilot-setup-steps.yml:17,daily-copilot-token-report.lock.yml:317curl -fsSL https://raw.githubusercontent.com/github/gh-aw/refs/heads/main/install-gh-aw.sh | bash— downloading and executing a script from a mutable branch ref without integrity checks.daily-perf-improver/build-steps/daily-test-improver/coverage-steps— unpinnable_action (Note, ×2)github_action_from_unverified_creator_used (Note, ×4)
Actionlint — Known False Positives
permissions/copilot-requests (Error, ×40)
Actionlint 1.7.11 reports
copilot-requestsas an unknown permission scope in 40 workflows. This is a false positive —copilot-requests: writeis a valid GitHub Copilot permission scope used internally by gh-aw Copilot-engine workflows. It is not in actionlint's public registry because it is GitHub-proprietary.All 40 affected workflows: agent-performance-analyzer, archie, artifacts-summary, auto-triage-issues, brave, breaking-change-checker, ci-coach, claude-code-user-docs-review, cli-consistency-checker, code-scanning-fixer, copilot-cli-deep-research, copilot-pr-merged-report, copilot-pr-nlp-analysis, copilot-pr-prompt-analysis, craft, daily-architecture-diagram, daily-assign-issue-to-user, daily-cli-performance, daily-compiler-quality, daily-copilot-token-report, daily-file-diet, daily-malicious-code-scan, daily-mcp-concurrency-analysis, daily-news, daily-repo-chronicle, daily-secrets-analysis, daily-syntax-error-quality, daily-testify-uber-super-expert, daily-workflow-updater, dead-code-remover, delight, dev-hawk, dev, dictation-prompt, discussion-task-miner, docs-noob-tester, draft-pr-cleanup, firewall-escape, smoke-create-cross-repo-pr, smoke-update-cross-repo-pr.
Consider adding an actionlint ignore comment or config exception for
copilot-requeststo suppress these false positives.Compiler Warnings (26)
rate-limitsafe-inputsHistorical Trends
New Issues: None
Resolved Issues: None (fully stable)
The actionlint count has been stable at 40 for 3 consecutive days after the smoke-copilot workflow resolved one false positive on 2026-03-03. Zizmor and poutine findings have been unchanged for 6+ days.
Recommendations
artipackedindaily-copilot-token-report: addpersist-credentials: falseto the checkout step (Medium severity, 12+ days persistent).smoke-copilot-armself-hosted runner usage for PR triggers (poutine warning).install-gh-aw.shscript reference to a commit SHA and add checksum verification incopilot-setup-steps.ymlanddaily-copilot-token-report.copilot-requeststo suppress 40 known false positives and reduce noise.Next Steps
persist-credentials: falsefix todaily-copilot-token-report.md(use fix prompt above with Copilot agent)smoke-copilot-armPR triggercopilot-requeststo actionlint allowlist/config to eliminate false positive noiseinstall-gh-aw.shcurl invocations to a tagged/SHA refReferences:
Beta Was this translation helpful? Give feedback.
All reactions