Skip to content

.github: enable excessive-permissions audit — final #21132 cleanup - #22694

Merged
AskAlexSharov merged 1 commit into
mainfrom
feature/lystopad/zizmor-excessive-perms-final-21132
Jul 23, 2026
Merged

.github: enable excessive-permissions audit — final #21132 cleanup#22694
AskAlexSharov merged 1 commit into
mainfrom
feature/lystopad/zizmor-excessive-perms-final-21132

Conversation

@lystopad

Copy link
Copy Markdown
Member

Final PR of the zizmor excessive-permissions cleanup — closes #21132 (with #22688).

Follows #22662, #22677, #22687 (and the dead-workflow removal #22688).

What

  1. test-fuzz.yml — move issues: write from the workflow level to the notify job (the only job that opens/updates the nightly-fuzz tracking issue). The fuzz matrix job keeps contents: read.
  2. .github/zizmor.yml — replace the blanket excessive-permissions: disable: true with a per-file ignore of just ci-gate.yml, and enable the audit for every other workflow.

Why ci-gate is ignored rather than scoped

ci-gate orchestrates the reusable test leaves. Per GitHub's rules, a called workflow's GITHUB_TOKEN permissions are capped by the caller — so ci-gate's workflow-level grants are not "for itself", they're the ceiling every leaf inherits:

Neither can be scoped to a single job without adding per-job permissions caps to every leaf-call job on the merge gate — high risk for no real privilege gain. The in-file comment documents this, mirrored into the ignore justification.

Verification

Merge order

Pairs with #22688 (docker-tags removal). Either order is safe (the gate passes both ways); once both land, excessive-permissions reports zero findings and #21132 can close. The only remaining zizmor exceptions repo-wide are the deliberate policy ones (unpinned-uses, concurrency-limits) and the justified per-file ignores (cache-poisoning, secrets-inherit, and now excessive-permissions → ci-gate).

…audit

Final step of the #21132 excessive-permissions cleanup.

- test-fuzz: move issues: write from the workflow level to the notify job,
  the only job that opens/updates the tracking issue. The fuzz matrix job
  keeps contents: read.
- zizmor.yml: replace the blanket excessive-permissions disable with a
  per-file ignore of ci-gate.yml. ci-gate orchestrates the reusable test
  leaves and a called workflow's token permissions are capped by the caller,
  so its workflow-level actions: write is the cap every self-cancelling leaf
  needs for gh run cancel, and pull-requests: write drives the gate's own
  dequeuePullRequest mutation — neither can be scoped to a single job.

With docker-tags.yml removed (#22688), the excessive-permissions audit now
reports no findings.
@AskAlexSharov
AskAlexSharov enabled auto-merge July 23, 2026 13:01
@lystopad lystopad self-assigned this Jul 23, 2026
@AskAlexSharov
AskAlexSharov added this pull request to the merge queue Jul 23, 2026
Merged via the queue into main with commit f998f07 Jul 23, 2026
94 checks passed
@AskAlexSharov
AskAlexSharov deleted the feature/lystopad/zizmor-excessive-perms-final-21132 branch July 23, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: fix pre-existing zizmor security findings (template-injection, cache-poisoning, permissions)

2 participants