🔍 Static Analysis Report - December 22, 2025 #7257
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it was created by an agentic workflow more than 3 days ago. |
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
Comprehensive static analysis scan of agentic workflows using three complementary security and code quality tools.
Findings by Tool
Key Finding: No critical or high-severity security vulnerabilities detected. All findings are informational, warnings, or code quality improvements.
Clustered Findings by Tool and Type
🛡️ Zizmor Security Findings
1. Template Injection Risk
template-injectiondev(1 workflow)Impact: Potential for code injection through GitHub Actions template expansion. This is informational as it relates to the Safe Inputs MCP server configuration.
2. Default Permissions on Risky Events
default_permissions_on_risky_eventstidy,scout(2 workflows)Impact: Workflows triggered by potentially untrusted events (e.g., pull_request, workflow_dispatch) are using default permissions instead of explicitly scoped permissions.
🔗 Poutine Supply Chain Findings
1. Unverified Script Execution (Most Common Issue)
unverified_script_execstatic-analysis-reportaudit-workflowsdaily-doc-updatercli-version-checkercopilot-agent-analysissmoke-claudesmoke-copilotdevtidyscoutProblematic Command:
curl -sSL https://raw.githubusercontent.com/githubnext/gh-aw-firewall/main/install.sh | sudo AWF_VERSION=v0.7.0 bashLocation: "Install awf binary" step in all workflows
Description: The installation script for the Agentic Workflow Firewall (awf) is downloaded and piped directly to bash with elevated privileges, without integrity verification.
Security Concerns:
🔧 Actionlint Linting Issues
1. SC2012 - Use find instead of ls
SC2012(shellcheck)static-analysis-reportaudit-workflowsdaily-doc-updatercli-version-checkercopilot-agent-analysissmoke-claudescoutMessage: "Use find instead of ls to better handle non-alphanumeric filenames"
Locations:
Reference: (redacted)
2. SC2155 - Declare and assign separately
SC2155(shellcheck)static-analysis-reportaudit-workflowsdaily-doc-updatercli-version-checkercopilot-agent-analysissmoke-claudescoutMessage: "Declare and assign separately to avoid masking return values"
Location: Claude Code CLI execution script
Reference: (redacted)
Top Priority Issues
🥇 Priority 1: Unverified Script Execution (Poutine)
While marked as "info" severity, this affects every workflow and represents a supply chain attack vector. Fixing this pattern once will improve security posture across all workflows.
🥈 Priority 2: SC2012 Shellcheck Issues (Actionlint)
These are code quality issues that could cause problems with filenames containing special characters.
🥉 Priority 3: SC2155 Shellcheck Warning (Actionlint)
Variable declaration pattern that can mask return values and hide errors.
4️⃣ Priority 4: Default Permissions (Zizmor)
Workflows should explicitly define minimum required permissions.
Fix Suggestion: Unverified Script Execution
Since this issue affects all 10 workflows, fixing it provides the highest impact. Here's a detailed fix guide:
Problem
Recommended Solutions
Option 1: Use GitHub Actions Composite Action (Preferred)
Create a composite action in the
gh-aw-firewallrepository:Benefits:
Option 2: Download, Verify, Then Execute
Benefits:
Requirements:
Option 3: Pin to Specific Commit (Minimal Change)
Benefits:
Trade-offs:
Detailed Findings by Workflow
Full Report
static-analysis-report.md
audit-workflows.md
daily-doc-updater.md
cli-version-checker.md
copilot-agent-analysis.md
smoke-claude.md
smoke-copilot.md
dev.md
tidy.md
scout.md
Historical Trends
This is the first comprehensive static analysis scan with all three tools. Future scans will track:
Baseline established: 37 total findings across 10 workflows
Recommendations
Immediate Actions (High Impact, Low Effort)
Short-term Actions (Code Quality)
✅ Fix SC2012 shellcheck issues - Update scripts to use
findinstead ofls✅ Fix SC2155 shellcheck warnings - Separate variable declaration and assignment
Long-term Actions (Security Hardening)
✅ Add explicit permissions to risky workflows - Define minimum required permissions for
tidyandscout✅ Review template injection warnings - Analyze Safe Inputs MCP configuration in
devworkflow✅ Automate static analysis - Add pre-commit hooks or CI checks
Prevention & Continuous Improvement
Next Steps
tidyandscoutworkflowsScan Metadata
Cache Location:
/tmp/gh-aw/cache-memory/security-scans/2025-12-22.jsonBeta Was this translation helpful? Give feedback.
All reactions