🔍 Static Analysis Report - January 28, 2026 #12276
Replies: 2 comments 1 reply
-
|
/plan |
Beta Was this translation helpful? Give feedback.
-
Planning Complete ✅I've analyzed the static analysis report and created 5 actionable sub-issues to address the findings: Created Issues
Priority RationaleThe expression errors are split into 3 issues for manageability (5, 5, and 17 workflows each). These are critical because they cause runtime failures. The permissions issue addresses all 14 affected workflows in a single issue since the fix pattern is consistent. The documentation issue provides context for future static analysis runs to prevent false positives. Next Steps
The planning is complete and actionable work items are ready for execution. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Analysis Summary
Comprehensive static analysis completed on 141 workflows using three security and quality tools: actionlint, zizmor, and poutine.
Findings by Tool
Priority Classification
🔴 High Priority (27 findings)
Actionlint Expression Errors - Will cause workflow failures
create_pull_requestjob in dependency chain🟡 Medium Priority (14 findings)
Default Permissions on Risky Events - Security concern
🟢 Low Priority (714 findings)
Top Issues by Type
1. Shellcheck SC2129 (319 occurrences)
Issue: Using multiple individual redirects instead of grouped redirects
Example:
Severity: Low (style issue, no functional impact)
Status: Acceptable - minor code quality improvement
2. Expression Errors (27 occurrences) 🔴
Issue: Property "create_pull_request" not defined in needs dependency chain
Example workflow locations:
Severity: High - causes workflow failures
Impact: These workflows will fail when they attempt to reference
needs.create_pull_request.outputsorneeds.create_pull_request.resultView Detailed Fix Instructions
Fix Template: Actionlint Expression Errors
Problem: Workflows reference
needs.create_pull_requestbut this job isn't in theneeds:array.Solution Options:
Option A: Add the missing dependency
Option B: Remove the invalid reference
Option C: Use a different job's output
All 27 affected workflows:
3. Default Permissions on Risky Events (14 occurrences) 🟡
Issue: Workflows use default (write) permissions with risky trigger events
Affected workflows:
Severity: Medium - security concern
Risk: These workflows run on
workflow_dispatchorissue_commenttriggers with default write permissions, violating least-privilege principle.View Security Fix Instructions
Fix Template: Default Permissions
Problem: Risky trigger events with default write permissions
Solution: Add explicit permissions in workflow frontmatter
For read-only agents (analysis, reports):
For comment-only agents (reviewers, moderators):
For code-modifying agents (auto-fixers, updaters):
Reference: GitHub Security Hardening Guide
4. Obfuscation Warnings (126 occurrences) 🟢
Issue: Dynamic command execution detected by zizmor
Affected: 63 workflows (all agentic workflows with dynamic agent output)
Severity: Low
Status: Expected and Acceptable ✅
Rationale:
Mitigation: Runtime safety checks already in place via:
View Technical Context
Why Obfuscation is Expected in gh-aw
Agentic workflows intentionally use dynamic execution:
This pattern enables:
Trade-offs:
Current safety measures:
Historical Trends
Comparison: 2026-01-26 vs 2026-01-28
Analysis:
New Issue Types Identified:
Recommendations
Immediate Actions (This Week)
Fix Expression Errors (27 workflows) 🔴
create_pull_requestto needs dependencies OR remove invalid references/tmp/gh-aw/cache-memory/fix-templates/actionlint-expression-errors.mdAdd Explicit Permissions (14 workflows) 🟡
permissions:blocks to workflow frontmatter/tmp/gh-aw/cache-memory/fix-templates/poutine-default-permissions.mdShort-term Actions (Next 2 Weeks)
Review Shellcheck SC2129 Warnings
Document Obfuscation Trade-offs
/tmp/gh-aw/cache-memory/fix-templates/zizmor-obfuscation.mdLong-term Actions
Integrate Static Analysis in CI
Enhance Compiler Validation
Detailed Findings by Workflow
View Complete Workflow Findings
Note: Full detailed findings available in scan data file:
/tmp/gh-aw/cache-memory/security-scans/2026-01-28.jsonSummary by severity:
Most affected workflows (by total findings):
Fix Templates and Resources
All fix templates saved to persistent cache:
/tmp/gh-aw/cache-memory/fix-templates/actionlint-expression-errors.md/tmp/gh-aw/cache-memory/fix-templates/poutine-default-permissions.md/tmp/gh-aw/cache-memory/fix-templates/zizmor-obfuscation.mdScan Data:
/tmp/gh-aw/cache-memory/security-scans/2026-01-28.jsonNext Steps
Tool Information
Actionlint v1.7.10
Zizmor
Poutine
Scan completed: 2026-01-28
Next scheduled scan: Daily (automated)
Historical data: 80+ previous scans available in cache
Beta Was this translation helpful? Give feedback.
All reactions