🔍 Static Analysis Report - November 28, 2025 #5006
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
Daily static analysis scan of all agentic workflows using zizmor (security), poutine (supply chain), and actionlint (linting).
Findings Overview
🚨 High Priority Security Issues
1. Template Injection (High Severity) - 2 workflows
Affected Workflows: ci-doctor.md, close-old-discussions.md
Severity: High
Impact: Code injection via template expansion could allow attackers to extract secrets or modify workflow behavior
Zizmor detected template injection vulnerabilities where GitHub Actions template expressions could be exploited if they process untrusted input (issue titles, PR descriptions, etc.).
Reference: (redacted)#template-injection
2. Cache Poisoning (High Severity) - 1 workflow
Affected Workflow: release.md (2 occurrences)
Severity: High
Impact: Runtime artifacts potentially vulnerable to cache poisoning attack
The release workflow uses caching in a way that could be exploited to poison the cache and affect subsequent workflow runs.
Reference: (redacted)#cache-poisoning
3. Unpinned Action (High Severity) - 1 workflow
Affected Workflow: release.md
Severity: High
Impact: Using unpinned action reference
cli/gh-extension-precompile@v2The workflow uses a mutable tag reference instead of a pinned SHA, which could be exploited if the action is compromised.
Reference: (redacted)#unpinned-uses
4. Excessive Permissions (High Severity) - 1 workflow
Affected Workflow: test-firewall-escape.md
Severity: High
Impact: Workflow has overly broad
issues: writepermissionThe workflow grants write access to issues which may not be necessary for its operation, violating the principle of least privilege.
Reference: (redacted)#excessive-permissions
Clustered Findings by Tool and Type
Zizmor Security Findings
Actionlint Linting Issues
Details: Unexpected key "names" for "issues" section in workflow trigger configuration.
ShellCheck Code Quality Issues
Details: Variables used without double quotes. While low severity, this violates shell scripting best practices and could cause issues with values containing spaces or special characters.
Priority Workflow: release.md
The release.md workflow has the most security findings:
This workflow handles sensitive release operations and should be prioritized for security fixes.
Fix Recommendations
Immediate Actions (High Severity)
Fix template injection in ci-doctor.md and close-old-discussions.md
toJSON()for complex data structuresPin action in release.md
cli/gh-extension-precompile@v2with SHA-pinned versionReview cache usage in release.md
Reduce permissions in test-firewall-escape.md
issues: writepermission is actually neededShort-term Actions (Medium/Low)
Fix artipacked issue in release.md
Fix syntax error in cloclo.md
Add quotes to shell variables
"$VAR"instead of$VARLong-term Improvements
Establish security scanning in CI/CD
Update workflow templates
Security training
Detailed Findings by Workflow
Workflows with Security Findings
changeset.md
ci-doctor.md
cloclo.md
close-old-discussions.md
daily-doc-updater.md
run: |github-mcp-tools-report.md
go-pattern-detector.md
mcp-inspector.md
q.md
release.md
High: unpinned-uses at line 5483
cli/gh-extension-precompile@v2High: cache-poisoning at line 318 (2 occurrences)
Medium: artipacked at line 5478
Informational: template-injection at line 459
Multiple shellcheck SC2086 warnings at lines: 462 (multiple), 5489
security-fix-pr.md
technical-doc-writer.md
test-firewall-escape.md
issues: writetidy.md
Fix Template: ShellCheck SC2086
The most common issue is shellcheck SC2086 (unquoted variables), affecting 8 workflows with 11 total occurrences.
Quick Fix Example
Before:
After:
Why: Quoting variables prevents word splitting and glob expansion, following shell scripting best practices.
Automated Fix: This can be fixed with a simple search/replace:
$PR_NUMBER→"$PR_NUMBER"$RELEASE_TAG→"$RELEASE_TAG"$VARreferences in shell scriptsFull fix documentation:
/tmp/gh-aw/cache-memory/fix-templates/shellcheck-sc2086.mdFix Template: Template Injection (High Severity)
For the 2 High severity template injection issues in ci-doctor.md and close-old-discussions.md:
Mitigation Strategy
Use environment variables as a security boundary - GitHub Actions treats environment variables as literal strings, preventing template injection.
Before (Vulnerable):
After (Secure):
Key Principles
toJSON()for complex objectsFull fix documentation:
/tmp/gh-aw/cache-memory/fix-templates/zizmor-template-injection.mdScan Metadata
/tmp/gh-aw/cache-memory/security-scans/2025-11-28.jsonNext Steps
Historical Context
This is a baseline scan. Future scans will include:
Generated: 2025-11-28
Agent: static-analysis-report (claude)
Workflow Run: §19758992611
Beta Was this translation helpful? Give feedback.
All reactions