Static Analysis Report - 2026-02-25 #18283
Closed
Replies: 2 comments
-
|
/plan |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
This discussion was automatically closed because it expired on 2026-02-26T06:42:06.267Z.
|
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.
-
Daily static analysis scan of all agentic workflows using zizmor, poutine, and actionlint. Today's scan returned 172 total findings across 158 workflows, with a notable reappearance of zizmor security findings (4) after 3 days of zero — including one Medium severity credential persistence vulnerability.
Analysis Summary
Findings by Tool
Clustered Findings by Tool and Type
Zizmor Security Findings
template-injectioncontribution-checkartipackeddaily-copilot-token-reportPoutine Supply Chain Findings
pr_runs_on_self_hostedsmoke-copilot-arm(line 278)unpinnable_actiondaily-perf-improver/build-steps,daily-test-improver/coverage-stepsunverified_script_execcopilot-setup-steps.yml(line 17),daily-copilot-token-report(line 298)github_action_from_unverified_creator_usedActionlint Linting Issues
shellcheck/SC1003--allow-domainsURL lists containing single quotes in domain namespermissionsexample-permissions-warning.md(1) + 2 copilot-requestsshellcheck/SC2295ci-doctorshellcheck/SC2086Top Priority Issues
1.
artipacked— Credential Persistence via Artifacts (zizmor)daily-copilot-token-report.lock.ymlactions/checkoutpersists GitHub token credentials in.git/config. If the workflow uploads artifacts containing the checkout directory, those credentials can be exfiltrated by anyone with artifact download access.2.
unverified_script_exec— curl | bash Execution (poutine)copilot-setup-steps.yml,daily-copilot-token-reportcurl ... | bashfromraw.githubusercontent.comwithout verification. If the remote URL is compromised or the ref is mutable, malicious code could execute in the workflow.3.
pr_runs_on_self_hosted— PR Workflow on Self-Hosted Runner (poutine)smoke-copilot-arm(line 278)ubuntu-24.04-arm). Pull requests from forks can run untrusted code on self-hosted infrastructure.4. Actionlint SC1003 — Systemic False Positive (156 occurrences)
SC1003(single quote escaping) on AWF--allow-domainsarguments containing domain name strings. These are false positives — the strings are double-quoted command arguments, not shell single-quote contexts.# shellcheck disable=SC1003inline.Fix Suggestion for
artipacked(Credential Persistence via Artifacts)Issue:
actions/checkoutpersists git credentials in.git/configby default, which can leak via artifact uploads.Severity: Medium
Affected Workflows: 1 (
daily-copilot-token-report.md)Prompt to Copilot Agent:
All Findings Details
Zizmor Detailed Findings
contribution-check— template-injection (Informational, ×3).github/workflows/contribution-check.lock.yml(step: "Write Safe Outputs Config")daily-copilot-token-report— artipacked (Medium, ×1).github/workflows/daily-copilot-token-report.lock.ymlactions/checkoutwith defaultpersist-credentials: true(default). Git credentials are stored in.git/configand can be exfiltrated via artifact upload.Poutine Detailed Findings
smoke-copilot-arm— pr_runs_on_self_hosted (Warning).github/workflows/smoke-copilot-arm.lock.yml:278ubuntu-24.04-arm(self-hosted)daily-perf-improver,daily-test-improver— unpinnable_action (Note, ×2).github/actions/daily-perf-improver/build-steps/action.yml:1,.github/actions/daily-test-improver/coverage-steps/action.yml:1copilot-setup-steps,daily-copilot-token-report— unverified_script_exec (Note, ×2).github/workflows/copilot-setup-steps.yml:17,.github/workflows/daily-copilot-token-report.lock.yml:298curl ... | bashexecution fromraw.githubusercontent.com. Mutable refs (branches) could deliver changed scripts.Unverified action creator (Note, ×2)
Actionlint Affected Workflows (28 total)
All 28 affected workflows have SC1003 false positives from AWF domain list strings:
ci-doctor,copilot-cli-deep-research,daily-compiler-quality,daily-copilot-token-report,daily-doc-updater,daily-file-diet,daily-mcp-concurrency-analysis,daily-syntax-error-quality,daily-testify-uber-super-expert,delight,developer-docs-consolidator,discussion-task-miner,glossary-maintainer,go-fan,go-logger,instructions-janitor,layout-spec-maintainer,prompt-clustering-analysis,semantic-function-refactor,sergo,smoke-copilot-arm,smoke-copilot,step-name-alignment,typist,ubuntu-image-analyzer,unbloat-docs,workflow-skill-extractor,contribution-checkAdditionally:
example-permissions-warning.md: Missingcontents: write,issues: write,pull-requests: writeci-doctor: SC2295 — unquoted expansion in pattern context (genuine issue)Historical Trends
Observations
artipackedMedium finding indaily-copilot-token-reportis new and warrants attention.New Issues (vs 2026-02-24)
zizmor/artipacked(Medium):daily-copilot-token-report— NEWzizmor/template-injection(Informational, ×3):contribution-check— NEWactionlint/SC2086(×1) — NEWResolved Issues (vs 2026-02-24)
unverified_script_execorgithub_action_from_unverified_creator_usedimprovements)Recommendations
artipackedindaily-copilot-token-report.md— addpersist-credentials: falseto theactions/checkoutstep. This is a Medium severity credential leak risk.template-injectionfindings incontribution-check.md— determine if the expressions are user-controlled and sanitize if so.unverified_script_exec— pincurl | bashtargets to specific commit SHAs rather than branch refs.pr_runs_on_self_hosted).Next Steps
persist-credentials: falsefix todaily-copilot-token-report.mdcontribution-check.mdcurl | bashscript fetches to specific commit SHAsReferences:
Beta Was this translation helpful? Give feedback.
All reactions