🔍 Static Analysis Report - November 27, 2025 #4920
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
Static analysis completed on 87 agentic workflows using three complementary tools: zizmor (security scanner), poutine (supply chain security), and actionlint (linting). The scan identified 28 findings across 14 workflows, with most issues being code quality improvements rather than critical security vulnerabilities.
Key Findings
Full Static Analysis Report
Findings by Tool and Severity
Summary Statistics
Detailed Findings by Tool
🔒 Zizmor Security Findings
1. Template Injection (4 occurrences)
Description: Code injection risk via GitHub Actions template expansion
Reference: (redacted)#template-injection
Impact: The High severity instance in
close-old-discussionsshould be reviewed to ensure no untrusted input flows into template expressions.2. Cache Poisoning (2 occurrences)
Description: Runtime artifacts vulnerable to cache poisoning attacks
Reference: (redacted)#cache-poisoning
Severity: High
push: tags:with artifact cachingImpact: The release workflow uses caching and artifacts in a context where cache poisoning could affect release builds.
3. Unpinned Action (1 occurrence)
Description: Action reference not pinned to commit SHA
Reference: (redacted)#unpinned-uses
Severity: High
cli/gh-extension-precompile@v2Impact: Using unpinned actions allows supply chain attacks via action repository compromise.
4. Artipacked (1 occurrence)
Description: Credential persistence through GitHub Actions artifacts
Reference: (redacted)#artipacked
Severity: Medium
Impact: Potential for credentials to leak through artifacts if not properly sanitized.
5. Excessive Permissions (1 occurrence)
Description: Overly broad workflow permissions
Reference: (redacted)#excessive-permissions
Severity: High
issues: writeImpact: Test workflows should use minimal permissions. This workflow is specifically testing firewall escape scenarios, but the permission scope should be reviewed.
⚙️ Actionlint Linting Findings
1. ShellCheck SC2086 - Missing Quotes (18 occurrences)
Description: Variables used without double quotes, risking word splitting and glob expansion
Reference: (redacted)
Severity: Informational
$PR_NUMBERin gh api call$PR_NUMBERin gh api call$PR_NUMBERin gh api call$PR_NUMBERin gh api call$RELEASE_TAGin gh api call$PR_NUMBERin gh api call$PR_NUMBERin gh api call$PR_NUMBERin gh api callCommon Pattern: Most occurrences follow the same pattern - requesting PR reviews using
gh api:Fix: Add quotes around
$PR_NUMBER:Impact: Low security risk (PR_NUMBER comes from trusted GitHub Actions output), but improves code robustness.
2. Syntax Error (1 occurrence)
Description: Invalid workflow syntax
Severity: Error
Impact: This workflow may fail to trigger correctly due to invalid syntax.
🔗 Poutine Supply Chain Findings
Result: No findings from poutine scanner.
All workflows passed poutine's supply chain security checks, indicating good dependency and action pinning practices (except where explicitly noted by zizmor).
Workflows Requiring Attention
High Priority (High Severity Issues)
release.md - 5 high/medium severity issues
close-old-discussions.md - High severity template injection
test-firewall-escape.md - Excessive permissions
Medium Priority (Multiple Issues)
Low Priority (Code Quality)
5-14. Nine workflows with ShellCheck SC2086 (missing quotes) - easy automated fix
Fix Recommendations
Immediate Actions (High Severity)
Review
close-old-discussions.mdtemplate injection at line 350Fix
release.mdworkflow security issuescli/gh-extension-precompileto commit SHA (if possible)Reduce
test-firewall-escape.mdpermissionsissues: writepermission if not strictly necessarypermissions: {}and granting only what's neededFix
cloclo.mdsyntax errornames:key underissues:sectionShort-term Actions (Code Quality)
$PR_NUMBER→"$PR_NUMBER"Fix Template: ShellCheck SC2086
Issue
Missing double quotes around bash variables causes potential word splitting and glob expansion.
Affected Workflows (9)
Common Pattern
Before:
After:
Fix Steps
pulls/$PR_NUMBER/pulls/"$PR_NUMBER"/$GITHUB_ENVand$RELEASE_TAGreferencesgh aw compileto verifyFull fix template available at:
/tmp/gh-aw/cache-memory/fix-templates/actionlint-SC2086.mdTrends and Historical Context
This is the first comprehensive static analysis scan with all three tools (zizmor, poutine, actionlint) enabled. Future scans will track:
Baseline established: November 27, 2025
Recommendations for Prevention
1. Pre-commit Hooks
Consider adding static analysis to pre-commit hooks:
2. CI/CD Integration
Add static analysis checks to pull request workflows to catch issues before merge.
3. Workflow Templates
Create secure workflow templates with:
4. Regular Scans
Schedule this static analysis report to run weekly to catch security issues early.
5. Security Training
Share common vulnerability patterns with workflow authors:
Tool Effectiveness Summary
Next Steps
cloclo.mdsyntax errorclose-old-discussions.mdfor template injection riskrelease.mdworkflowtest-firewall-escape.mdScan Metadata
Cache Location: Static analysis results stored in
/tmp/gh-aw/cache-memory/security-scans/for historical trending.Beta Was this translation helpful? Give feedback.
All reactions