🔍 Static Analysis Report - November 4, 2025 #3120
Closed
Replies: 2 comments 1 reply
-
|
/plan |
Beta Was this translation helpful? Give feedback.
1 reply
-
|
This discussion was automatically closed because it was created by an agentic workflow more than 1 week 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.
-
🔍 Static Analysis Report - November 4, 2025
Executive Summary
Comprehensive static analysis scan completed on 68 workflows using three industry-standard security and code quality tools: zizmor, poutine, and actionlint. The analysis identified 36 findings across security vulnerabilities and code quality issues, including 1 High-severity security vulnerability that requires immediate attention.
Key Findings:
Analysis Summary
Tools Used
Scan Results
Workflows Scanned: 68
Workflows with Findings: 11
Compilation Success Rate: 100%
Findings by Tool and Type
🔴 Zizmor Security Findings
High Severity Issues
Description: Use of fundamentally insecure
workflow_runtriggerReference: (redacted)#dangerous-triggers
Security Impact: The
workflow_runtrigger allows untrusted code from pull requests to execute with elevated permissions in the context of the base branch. This can lead to:Medium Severity Issues
Description: Overly broad permissions (
permissions: read-all)Reference: (redacted)#excessive-permissions
Security Impact: Granting excessive permissions violates the principle of least privilege and increases attack surface.
Low Severity Issues
Description: Code injection via template expansion
Reference: (redacted)#template-injection
Locations: All occurrences in "Setup MCPs" step
🟡 Actionlint Code Quality Findings
Shellcheck Issues
Workflows with Shell Issues:
🟢 Poutine Supply Chain Findings
No supply chain security issues detected ✓
Poutine analyzed all workflows for supply chain vulnerabilities and found no concerning patterns related to:
Top Priority Issues
🚨 #1: Dangerous Workflow Trigger (HIGH)
Issue:
workflow_runtrigger in smoke-detectorSeverity: High
Affected: smoke-detector.lock.yml
Security Risk: Critical - allows untrusted code execution with elevated permissions
Current Implementation:
Recommended Fix: Replace with
workflow_callpattern or repository dispatch. See detailed fix guide below.Issue: Broad
permissions: read-allin test-claude-oauth-workflowSeverity: Medium
Affected: test-claude-oauth-workflow.lock.yml
Security Risk: Medium - violates least privilege principle
Recommended Fix: Replace with explicit minimal permissions:
ℹ️ #3: Template Injection (LOW)
Issue: Template expansion in "Setup MCPs" step
Severity: Low
Count: 8 occurrences across 3 workflows
Affected: duplicate-code-detector, mcp-inspector, smoke-codex
Recommended Fix: Validate template inputs and use intermediate variables:
🐚 #4: Shell Quoting Issues (INFO)
Issue: Unquoted variables in shell scripts (SC2086)
Count: 15 occurrences across 9 workflows
Risk: Low - potential issues with spaces in paths
Recommended Fix: Add double quotes around variables:
Detailed Fix Guide for High Priority Issue
Fix Template: Dangerous Triggers (workflow_run)
Vulnerability Details
The
workflow_runtrigger is fundamentally insecure because it runs in the context of the base branch with full repository permissions, even when triggered by code from forks or untrusted branches.Security Impact
Risk Level: HIGH
An attacker could:
Recommended Solution
Option 1: Use workflow_call (Recommended)
Update smoke test workflows to call the detector:
Option 2: Use repository_dispatch
Trigger from smoke tests:
Testing the Fix
References
Compilation Warnings (Non-Security)
Network Firewalling Not Supported
Count: 6 workflows
Impact: Low - informational only
Claude engine does not support network firewalling. Affected workflows specify
network.allowedrestrictions that may not be enforced:Missing Permissions Declarations
Count: 3 workflows
Impact: Low - permissions should be added for clarity
Recommendations
Immediate Actions (High Priority)
Fix dangerous-triggers in smoke-detector (HIGH)
workflow_runwithworkflow_callpatternReduce excessive permissions (MEDIUM)
permissions: read-allwith explicit minimal permissionsShort-term Actions (Medium Priority)
Address template injection issues (LOW)
Fix shell quoting issues (INFO)
read -rfor reading inputls | grepwith proper glob patternsLong-term Improvements
Establish automated static analysis
Create secure workflow templates
workflow_callusageSecurity training and awareness
Historical Context
This is the first comprehensive static analysis scan using all three tools (zizmor, poutine, actionlint). Future scans will include trend analysis and regression tracking.
Baseline Established: November 4, 2025
Next Steps
Scan Metadata
Scan Date: November 4, 2025
Scan Duration: ~3 minutes
Tools Used:
Repository: githubnext/gh-aw
Workflows Analyzed: 68
Analysis Method: Automated compilation with static analysis flags
Cache Location:
/tmp/gh-aw/cache-memory/security-scans/2025-11-04.jsonReport Generated by: Static Analysis Report Agent (Claude)
Workflow Run: §19063271353
Beta Was this translation helpful? Give feedback.
All reactions