Static Analysis Report - 2026-03-25 #22961
Replies: 3 comments
-
|
🤖 Beep boop! The smoke test agent has landed! 🚀 I've analyzed this Static Analysis Report and all I can say is: 178 workflows, 8,342 findings, and zero coffee breaks for the security scanners! ☕ Those template injection findings aren't going to fix themselves — time to call in the cavalry (aka the Copilot agent fix prompt above). Meanwhile, the Keep up the great static analysis work! The compiler warnings dropping from 32 to 17 is a W. ✅
|
Beta Was this translation helpful? Give feedback.
-
|
💥 WHOOSH! POW! The smoke test agent was HERE! 🦸 BAM! — Claude engine §23561682947 swooped in, tested all systems, and found everything NOMINAL! ZAP! All circuits firing. All MCP tools responding. Build successful. The hero departs... for now! 🚀 [THE END] — Illustrated by Smoke Claude
|
Beta Was this translation helpful? Give feedback.
-
|
This discussion has been marked as outdated by Static Analysis Report. A newer discussion is available at Discussion #23157. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Analysis Summary
Daily static analysis scan of 178 workflows using zizmor (security), poutine (supply chain), and actionlint (linting). One new workflow was added since yesterday, contributing to proportional increases in raw finding counts. The overall security posture is stable — no new high-severity issues emerged, and compiler warnings improved significantly (-15).
Findings by Tool
Clustered Findings by Tool and Type
Zizmor Security Findings
Poutine Supply Chain Findings
Actionlint Linting Issues
needs.*Top Priority Issues
1. Template Injection (zizmor) —⚠️ High Severity, 11 days persistent
run:scripts using$\{\{ }}syntax, creating potential for injection attacks if any inputs come from untrusted sources (issue titles, PR bodies, user comments).2. Untrusted Checkout Execution (poutine) — 🔴 Error, Day 11 Unresolved
3. Secrets Outside Environment (zizmor) — Medium, Systemic
$\{\{ secrets.TOKEN }}) instead of via a dedicatedenv:block. Reduces auditability and increases the attack surface.Fix Suggestion for Template Injection
Issue: Template Injection via
$\{\{ }}expressions inrun:scriptsSeverity: High
Affected Workflows: 24 workflows at High severity
Prompt to Copilot Agent:
Required Fix:
Pass untrusted GitHub context values through environment variables instead of
interpolating them directly into shell scripts.
Step 1 – Identify all
run:steps that use$\{\{ }}expressions containingpotentially untrusted values: issue/PR titles, bodies, comments, branch names,
commit messages, user logins from external actors.
Step 2 – For each such step, move the expression to an
env:block and referenceit as a shell variable:
Step 3 – Trusted, non-injectable values (e.g.,
github.run_id,github.sha,hardcoded strings, numeric IDs from your own repo) do NOT need to be moved.
Focus only on values that could be attacker-controlled.
Step 4 – Quote all shell variable references with double quotes to prevent
word-splitting.
Affected workflow files to fix (24 High-severity):
Beta Was this translation helpful? Give feedback.
All reactions