🔍 Static Analysis Report - November 11, 2025 #3606
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 11, 2025
Executive Summary
Comprehensive static analysis scan of agentic workflows using zizmor (security scanner), poutine (supply chain security), and actionlint (workflow linter). Scanned 50 out of 75 workflows and identified 28 findings across multiple severity levels.
Key Findings
Scan Statistics
Findings by Tool
📊 Summary Table
🔴 actionlint Findings (25 issues)
1. Undefined Activation Job Outputs (22 errors - HIGH SEVERITY)
Issue: Workflows reference
needs.activation.outputs.comment_idandneeds.activation.outputs.comment_repobutactivationis not in the job'sneedsdependency list.Impact:
Affected Workflows (11 workflows, 22 error instances):
security-fix-prdaily-doc-updatergo-loggerdeveloper-docs-consolidatorgithub-mcp-tools-reportunbloat-docsdictation-promptpoem-botqtechnical-doc-writertidyRoot Cause:
Recommended Fix: Add
activationto theneedslist2. Shellcheck Issues (3 warnings - LOW SEVERITY)
Issue: SC2086 - Missing quotes in shell scripts could cause issues with filenames containing spaces
Affected Workflows:
super-linter(super-linter.lock.yml:4528, lines 4, 6, 9 within script)Recommended Fix: Add double quotes around variable expansions
🟡 zizmor Security Findings (2 issues)
Template Injection (Low/Informational Severity)
Rule:
template-injectionDescription: Potential code injection via template expansion
Reference: (redacted)#template-injection
Findings:
copilot-session-insightscontinue-on-errorattribute in Install gh agent-task extension stepmcp-inspectorImpact: Low - These are relatively safe template expansions, but should be reviewed for any user-controlled input
Mitigation: Review the steps to ensure no untrusted user input flows into the template expansion
✅ poutine Supply Chain Security (0 issues)
No supply chain security issues were detected by poutine in this scan. This is positive news for the security posture of the workflows.
1. Network Firewall Unsupported (7 warnings - MEDIUM SEVERITY)
Issue: Claude engine does not support network firewalling. Workflows specify
network.allowedrestrictions, but these may not be enforced.Security Impact: Network restrictions intended to sandbox workflow execution may not be applied, potentially allowing unauthorized network access.
Affected Workflows (7):
audit-workflowscopilot-session-insightsdaily-doc-updatercopilot-agent-analysisprompt-clustering-analysisunbloat-docsblog-auditorWarning Message:
Recommendations:
2. Web Search Unsupported (1 warning)
Issue: Copilot engine doesn't support web-search tool
Affected Workflows:
ci-doctorImpact: Workflow may not work as intended if it relies on web search functionality
3. Pip Package Validation Failed (3 warnings)
Issue:
markitdown-mcppackage validation failed - package may not exist on PyPIAffected Workflows:
scoutmcp-inspectorpdf-summaryImpact: Potential runtime failure if the package doesn't exist or isn't accessible
Recommendation: Verify the package exists and is correctly named
Priority Issues & Recommendations
🔥 Priority 1: Fix Undefined Activation Outputs (IMMEDIATE)
Severity: High
Issue Count: 22 errors across 11 workflows
Impact: Workflows are broken and will fail at runtime
Action Items:
activationto theneedslist in thecreate_pull_requestjobEstimated Effort: 1-2 hours (bulk fix across 11 workflows)
See detailed fix instructions in the expandable section below.
🔶 Priority 2: Address Network Firewall Warnings (SHORT-TERM)
Severity: Medium
Issue Count: 7 workflows
Impact: Security - network restrictions may not be enforced
Action Items:
Estimated Effort: 1-2 days (requires design decisions)
🔹 Priority 3: Review Template Injection Findings (MEDIUM-TERM)
Severity: Low
Issue Count: 2 workflows
Impact: Potential security vulnerability if user input reaches template expansion
Action Items:
copilot-session-insightsandmcp-inspectorworkflowsEstimated Effort: 4-8 hours
🔹 Priority 4: Fix Shellcheck Warnings (LOW-TERM)
Severity: Low
Issue Count: 3 warnings in 1 workflow
Impact: Potential issues with filenames containing spaces
Action Items:
super-linterEstimated Effort: 30 minutes
Detailed Fix Guide: Undefined Activation Outputs
Fix Guide for Undefined Activation Outputs
Problem Statement
The
create_pull_requestjob in 11 workflows referencesneeds.activation.outputs.comment_idandneeds.activation.outputs.comment_repo, butactivationis not listed in the job'sneedsdependency array. This causes actionlint errors and will cause runtime failures.Technical Details
Current Implementation (BROKEN):
Solution
Add
activationto theneedsarray:Implementation Steps
For each affected workflow:
.github/workflows/)create_pull_requestjob (or similar job that references activation outputs)needs:sectionactivationto the list (typically as the first item)Affected Workflows List
Apply this fix to these 11 workflows:
security-fix-pr.mddaily-doc-updater.mdgo-logger.mddeveloper-docs-consolidator.mdgithub-mcp-tools-report.mdunbloat-docs.mddictation-prompt.mdpoem-bot.mdq.mdtechnical-doc-writer.mdtidy.mdBulk Fix Strategy
To fix all workflows efficiently:
Verification
After applying fixes:
Alternative Solution
If activation comment updates aren't needed, you could instead remove the environment variables:
However, this would break the functionality of linking PRs back to their activation comments, so the recommended fix is to add the dependency.
All Compilation Output Details
Complete Compilation Results
Workflows Successfully Compiled
50 workflows were compiled with all three static analysis tools (zizmor, poutine, actionlint):
Batch 1
static-analysis-report(209.8 KB)security-fix-pr(223.4 KB) - 2 actionlint errorsaudit-workflows(243.5 KB) - firewall warningsafe-output-health(215.2 KB)smoke-claude(201.9 KB)Batch 2
daily-doc-updater(226.9 KB) - 2 actionlint errors, firewall warninggo-logger(228.8 KB) - 2 actionlint errorscopilot-agent-analysis(221.3 KB) - firewall warninglockfile-stats(208.3 KB)example-workflow-analyzer(193.4 KB)Batch 3
duplicate-code-detector(190.8 KB)go-pattern-detector(203.8 KB)scout(263.9 KB) - pip package warningdeveloper-docs-consolidator(258.2 KB) - 2 actionlint errors, firewall warningtypist(213.1 KB) - zizmor scan failed (exit code 1)Batch 4
semantic-function-refactor(216.0 KB)github-mcp-tools-report(259.4 KB) - 2 actionlint errorsprompt-clustering-analysis(225.9 KB) - firewall warningunbloat-docs(300.5 KB) - 2 actionlint errors, firewall warningBatch 5
archie(264.3 KB)brave(257.6 KB)changeset(267.0 KB)ci-doctor(238.7 KB) - web-search unsupported warningcli-version-checker(236.2 KB)commit-changes-analyzer(202.0 KB)Batch 6
copilot-session-insights(268.0 KB) - zizmor template-injection (informational), firewall warningdaily-firewall-report(262.0 KB)dependabot-go-checker(213.9 KB)dev-hawk(214.5 KB)dev(229.3 KB)Batch 7
dictation-prompt(233.6 KB) - 2 actionlint errorsissue-classifier(173.7 KB) - custom steps experimentalmcp-inspector(254.2 KB) - zizmor template-injection (low), pip package warningmergefest(262.5 KB)notion-issue-summary(175.4 KB)Batch 8
pdf-summary(263.7 KB) - pip package warningplan(255.1 KB)poem-bot(390.4 KB) - 2 actionlint errorspr-nitpick-reviewer(294.3 KB)python-data-charts(243.6 KB)Batch 9
q(316.2 KB) - 2 actionlint errorsrepo-tree-map(210.1 KB)research(216.4 KB)smoke-detector(262.5 KB)super-linter(219.1 KB) - 3 shellcheck errorstechnical-doc-writer(291.0 KB) - 2 actionlint errorsBatch 10
test-jqschema(90.5 KB)test-manual-approval(90.1 KB)test-ollama-threat-detection(219.4 KB)test-post-steps(86.4 KB)test-secret-masking(90.5 KB)test-svelte(87.9 KB)Batch 11
tidy(286.8 KB) - 2 actionlint errorsvideo-analyzer(217.4 KB)weekly-issue-summary(251.7 KB)artifacts-summary(218.4 KB)blog-auditor(207.3 KB) - firewall warninggrumpy-reviewer(278.9 KB)Workflows Not Yet Compiled
25 workflows remain to be compiled:
copilot-pr-nlp-analysiscopilot-pr-prompt-analysiscraftdaily-newsdaily-perf-improverdaily-repo-chronicledaily-test-improverdev.firewallexample-permissions-warningfirewallinstructions-janitorschema-consistency-checkersmoke-codexsmoke-copilottest-claude-oauth-workflowtest-timestamp-jsThese workflows were not compiled in this scan due to time constraints, but should be included in future scans for comprehensive coverage.
Historical Trends
This is the first comprehensive static analysis scan of the repository's agentic workflows. Future scans will include trend data comparing:
Recommendation: Schedule regular static analysis scans (weekly or bi-weekly) to track security and code quality trends.
Prevention & Process Improvements
1. Automated Static Analysis in CI/CD
Add a pre-commit hook or CI check:
2. Update Workflow Templates
Create secure workflow templates that:
3. Developer Training
Educate workflow authors on:
4. Regular Security Reviews
Establish a cadence:
Next Steps
Immediate Actions (This Week)
Short-term Actions (Next 2 Weeks)
Long-term Actions (Next Month)
Appendix: Tool Information
zizmor
poutine
actionlint
Scan Metadata
/tmp/gh-aw/cache-memory/security-scans/2025-11-11-analysis.jsonThis report was generated automatically by the Static Analysis Report Agent. For questions or to request additional analysis, please comment on this discussion.
Beta Was this translation helpful? Give feedback.
All reactions