Objective
Fix HIGH severity excessive-permissions vulnerability by scoping down id-token: write permission from workflow level to job level in two workflows.
Context
Zizmor security analysis (Discussion #2950) identified that id-token: write permission is overly broad at the workflow level, increasing attack surface and potential for privilege escalation.
Approach
Move id-token: write permission from workflow-level to job-level where it's actually needed:
Before (workflow-level):
permissions:
id-token: write
contents: read
After (job-level):
# Workflow level - minimal permissions
permissions:
contents: read
jobs:
specific-job:
permissions:
id-token: write # Only where needed
contents: read
Files to Modify
.github/workflows/daily-perf-improver.md
.github/workflows/daily-test-improver.md
.github/workflows/daily-perf-improver.lock.yml (will be regenerated)
.github/workflows/daily-test-improver.lock.yml (will be regenerated)
Implementation Steps
- Review both workflows to identify which jobs actually need
id-token: write
- Remove
id-token: write from workflow-level permissions
- Add
id-token: write only to specific jobs that require it
- Run
gh aw compile daily-perf-improver daily-test-improver to regenerate .lock.yml files
- Verify the fix with
gh aw compile --zizmor
Acceptance Criteria
AI generated by Plan Command for discussion #2950
Objective
Fix HIGH severity excessive-permissions vulnerability by scoping down
id-token: writepermission from workflow level to job level in two workflows.Context
Zizmor security analysis (Discussion #2950) identified that
id-token: writepermission is overly broad at the workflow level, increasing attack surface and potential for privilege escalation.Approach
Move
id-token: writepermission from workflow-level to job-level where it's actually needed:Before (workflow-level):
After (job-level):
Files to Modify
.github/workflows/daily-perf-improver.md.github/workflows/daily-test-improver.md.github/workflows/daily-perf-improver.lock.yml(will be regenerated).github/workflows/daily-test-improver.lock.yml(will be regenerated)Implementation Steps
id-token: writeid-token: writefrom workflow-level permissionsid-token: writeonly to specific jobs that require itgh aw compile daily-perf-improver daily-test-improverto regenerate.lock.ymlfilesgh aw compile --zizmorAcceptance Criteria
id-token: writeis removed from workflow-level permissionsid-token: writeis added only to jobs that require itRelated to 🔒 Zizmor Security Analysis Report - November 1, 2025 #2950