You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CWE-522: anchor-drift.yml persists credentials on all six checkout steps (fix in PR #55) #53
PR #52 was merged at 2026-09-09T09:00:03Z carrying an unfixed CWE-522 finding.
This is not a regression introduced by that PR — the finding pre-existed it — but
the PR was the vehicle that was supposed to fix it, and the fix did not land.
Measured on main after the merge
.github/workflows/anchor-drift.yml has five actions/checkout steps and zero persist-credentials lines, so all five fall back to the default persist-credentials: true.
Verified against a positive control rather than by absence alone: the prepared
fix patch greps 6 occurrences of persist-credentials; main greps 0.
Why the fix is not in the PR
The fix commit 6a5d1a7 exists but was rejected at push time:
! [remote rejected] (refusing to allow an OAuth App to create or update workflow
'.github/workflows/anchor-drift.yml' without 'workflow' scope)
The acting token carries scopes gist, read:org, repo — no workflow. The
rejection is per-commit and fails the whole push, so the validator commit bc16497 landed while the workflow commit did not. That asymmetry is why the PR
looked complete.
with:
# No job here pushes or uses the token; this workflow runs on# pull_request and executes repository-controlled code, so the# default credential persistence in .git/config is exposure with# no upside (CWE-522).persist-credentials: false
Unblocking
One owner command: gh auth refresh -h github.com -s workflow
The same missing scope also blocks two CWE-522 findings and one permissions: read-all finding (githubactions:S8234) on hyperpolymath/a2ml#3
— where that last one is the sole cause of a red SonarCloud quality gate.
changed the title [-]CWE-522: anchor-drift.yml persists credentials on all five checkout steps (fix blocked on missing `workflow` token scope)[/-][+]CWE-522: anchor-drift.yml persists credentials on all six checkout steps (fix in PR #55)[/+]on Sep 9, 2026
Correction: six checkout steps, not five — the earlier figure came from a truncated grep -A4 | head -30. Counted by parsing the YAML: 6 checkout steps, 6 now carrying persist-credentials: false, 0 still persisting. Conclusion unchanged.
The workflow scope has since been granted, so the fix is no longer blocked — it is in #55.
Activity
[-]CWE-522: anchor-drift.yml persists credentials on all five checkout steps (fix blocked on missing `workflow` token scope)[/-][+]CWE-522: anchor-drift.yml persists credentials on all six checkout steps (fix in PR #55)[/+]hyperpolymath commentedon Sep 9, 2026
Correction: six checkout steps, not five — the earlier figure came from a truncated
grep -A4 | head -30. Counted by parsing the YAML: 6 checkout steps, 6 now carryingpersist-credentials: false, 0 still persisting. Conclusion unchanged.The
workflowscope has since been granted, so the fix is no longer blocked — it is in #55.🤖 Generated with Claude Code
https://claude.ai/code/session_01QNjWX2B4FffG7zqMBMui6v