Objective
Fix MEDIUM severity excessive-permissions vulnerabilities by replacing permissions: read-all with explicit minimal permissions in 7 workflows.
Context
Zizmor security analysis (Discussion #2950) identified that using read-all is overly broad and increases risk of credential theft or unauthorized actions. The principle of least privilege requires specifying only the permissions actually needed.
Approach
Replace broad read-all with explicit minimal permissions:
Before:
After (example - adjust per workflow):
permissions:
contents: read
pull-requests: read
issues: read
Affected Workflows
.github/workflows/ci-doctor.md
.github/workflows/copilot-agent-analysis.md
.github/workflows/copilot-pr-prompt-analysis.md
.github/workflows/daily-news.md
.github/workflows/smoke-detector.md
.github/workflows/technical-doc-writer.md
.github/workflows/test-timestamp-js.md
Implementation Steps
For each workflow:
- Review the workflow to understand what permissions it actually uses
- Replace
permissions: read-all with explicit minimal permissions
- Run
gh aw compile (workflow-name) to regenerate .lock.yml
- Test the workflow to ensure it still functions
After all workflows are fixed:
5. Run gh aw compile --zizmor to verify all excessive-permissions issues are resolved
Acceptance Criteria
AI generated by Plan Command for discussion #2950
Objective
Fix MEDIUM severity excessive-permissions vulnerabilities by replacing
permissions: read-allwith explicit minimal permissions in 7 workflows.Context
Zizmor security analysis (Discussion #2950) identified that using
read-allis overly broad and increases risk of credential theft or unauthorized actions. The principle of least privilege requires specifying only the permissions actually needed.Approach
Replace broad
read-allwith explicit minimal permissions:Before:
After (example - adjust per workflow):
Affected Workflows
.github/workflows/ci-doctor.md.github/workflows/copilot-agent-analysis.md.github/workflows/copilot-pr-prompt-analysis.md.github/workflows/daily-news.md.github/workflows/smoke-detector.md.github/workflows/technical-doc-writer.md.github/workflows/test-timestamp-js.mdImplementation Steps
For each workflow:
permissions: read-allwith explicit minimal permissionsgh aw compile (workflow-name)to regenerate.lock.ymlAfter all workflows are fixed:
5. Run
gh aw compile --zizmorto verify all excessive-permissions issues are resolvedAcceptance Criteria
read-allRelated to 🔒 Zizmor Security Analysis Report - November 1, 2025 #2950