You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Key Observation: All zizmor findings are marked "Informational" severity, indicating potential security considerations rather than immediate vulnerabilities. However, the patterns identified represent real supply chain and injection risks that should be addressed.
Clustered Findings by Tool and Type
🔐 Zizmor Security Findings
Issue Type
Severity
Count
Affected Workflows
unverified_script_exec
Informational
124
121 workflows
template-injection
Informational
123
121 workflows
unpinnable_action
Informational
3
3 workflows
Total: 250 findings across 121 unique workflow files
Variables should be quoted to prevent globbing and word splitting
Total: 85 shell script quality issues across multiple workflows
Top Priority Issues
1. 🔴 Unverified Script Execution (Most Critical)
Tool: zizmor
Count: 124 occurrences in 121 workflows
Severity: Informational (but high security impact)
Rule: unverified_script_exec
Description: Workflows download and execute shell scripts from external sources without verification using the "curl | bash" pattern. This poses supply chain security risks.
Description: Workflows use GitHub expressions (${{ }}) in contexts where they could potentially be influenced by attacker-controlled data, creating code injection opportunities.
# Pin to a specific commit SHA instead of 'main'
INSTALL_SCRIPT_SHA="a1b2c3d4e5f6"# Replace with actual commit SHA
curl -sSL "https://raw.githubusercontent.com/githubnext/gh-aw-firewall/${INSTALL_SCRIPT_SHA}/install.sh" -o /tmp/install-awf.sh
sudo AWF_VERSION=v0.9.0 bash /tmp/install-awf.sh
Option 3: Two-Step Process (Minimal Change)
# Separate download from execution
curl -sSL https://raw.githubusercontent.com/githubnext/gh-aw-firewall/main/install.sh -o /tmp/install-awf.sh
sudo AWF_VERSION=v0.9.0 bash /tmp/install-awf.sh
Review this report and prioritize which issues to address first
Apply fixes for unverified script execution (highest impact)
Re-run static analysis after fixes to measure improvement
Establish regular scanning cadence (daily or on every PR)
Scan completed successfully. All workflows compiled without errors. Focus on addressing the 260 identified quality and security improvements to strengthen the security posture of the agentic workflow system.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Analysis Summary
Comprehensive security and quality scan of all agentic workflow files using multiple static analysis tools.
Findings by Tool
Key Observation: All zizmor findings are marked "Informational" severity, indicating potential security considerations rather than immediate vulnerabilities. However, the patterns identified represent real supply chain and injection risks that should be addressed.
Clustered Findings by Tool and Type
🔐 Zizmor Security Findings
unverified_script_exectemplate-injectionunpinnable_actionTotal: 250 findings across 121 unique workflow files
🔗 Poutine Supply Chain Findings
Total: 0 findings (excellent supply chain security posture)
✅ Actionlint Linting Issues
Total: 85 shell script quality issues across multiple workflows
Top Priority Issues
1. 🔴 Unverified Script Execution (Most Critical)
unverified_script_execDescription: Workflows download and execute shell scripts from external sources without verification using the "curl | bash" pattern. This poses supply chain security risks.
Common Patterns Found:
Impact:
sudo)Affected Files:
.github/workflows/*.lock.ymlfiles (121 workflows).github/workflows/copilot-setup-steps.ymlReference: https://docs.zizmor.sh/audits/#unverified-script-exec
2.⚠️ Template Injection Risk
template-injectionDescription: Workflows use GitHub expressions (
${{ }}) in contexts where they could potentially be influenced by attacker-controlled data, creating code injection opportunities.Example Locations:
.github/workflows/agent-performance-analyzer.lock.yml:1342:9.github/workflows/ai-moderator.lock.yml:820:9.github/workflows/archie.lock.yml:896:9Impact:
run:steps with shell evaluationCommon Pattern: Steps named "Stop MCP gateway", "Configure Git credentials" using templates
Reference: https://docs.zizmor.sh/audits/#template-injection
3. 📝 Shell Script Quality Issues
Description: Shell variables used without quotes, leading to potential globbing and word splitting issues.
Example: Using
$VARinstead of"$VAR"in shell scriptsImpact:
Reference: https://github.com/rhysd/actionlint/blob/main/docs/checks.md#check-shellcheck-integ
4. 🔒 Unpinnable Actions (Low Impact)
unpinnable_actionDescription: Local composite actions cannot be pinned to specific commit SHAs (limitation of GitHub Actions architecture).
Affected File:
.github/actions/daily-test-improver/coverage-steps/action.ymlImpact: Minimal - local actions are under repository control
Reference: https://docs.zizmor.sh/audits/#unpinnable-action
🛠️ Fix Suggestion for Unverified Script Execution
Since this is the most prevalent and highest-impact issue, here's a detailed fix approach:
Issue: Unverified Script Execution
Severity: Informational (but security-critical)
Affected Workflows: 121 workflows (124 occurrences)
Recommended Solutions
Option 1: Download, Verify, Then Execute (Most Secure)
Option 2: Pin to Specific Git SHA (Recommended)
Option 3: Two-Step Process (Minimal Change)
# Separate download from execution curl -sSL https://raw.githubusercontent.com/githubnext/gh-aw-firewall/main/install.sh -o /tmp/install-awf.sh sudo AWF_VERSION=v0.9.0 bash /tmp/install-awf.shExample Workflow Fix
Before:
After (with SHA pinning):
Implementation Checklist
curl | bashpattern📊 Detailed Findings by Workflow
View All Findings
Zizmor Findings Distribution
Workflows with both template-injection and unverified_script_exec (121 workflows):
Actionlint Findings
85 workflows contain shellcheck SC2086 issues (unquoted variables)
Compilation Warnings
Additionally, the compiler reported:
📈 Historical Context
First Scan: This is the baseline security scan establishing initial metrics.
Future Tracking: Subsequent scans will compare against this baseline to track:
🎯 Recommendations
Immediate Actions (High Priority)
Address Unverified Script Execution (124 occurrences)
Review Template Injection Risks (123 occurrences)
Short-term Actions (Medium Priority)
Fix Shellcheck Issues (85 occurrences)
"$VAR"instead of$VAREstablish CI/CD Integration
Long-term Actions (Continuous Improvement)
Update Workflow Templates
Monitor Supply Chain
Automate Remediation
📁 Cache Memory Updated
Analysis data stored in
/tmp/gh-aw/cache-memory/:security-scans/2026-01-15.json- Full scan resultssecurity-scans/index.json- Scan history indexvulnerabilities/by-tool.json- Vulnerability patterns databasefix-templates/zizmor-unverified_script_exec.md- Detailed fix guideThis persistent cache enables trend analysis and knowledge retention across workflow runs.
🔗 Additional Resources
✅ Next Steps
Scan completed successfully. All workflows compiled without errors. Focus on addressing the 260 identified quality and security improvements to strengthen the security posture of the agentic workflow system.
Beta Was this translation helpful? Give feedback.
All reactions