Skip to content

security: pin GitHub Actions to commit SHAs, scope workflow permissions - #29

Merged
JRemitz merged 3 commits into
mainfrom
claude/audit-github-actions-security-M1zbf
May 14, 2026
Merged

security: pin GitHub Actions to commit SHAs, scope workflow permissions#29
JRemitz merged 3 commits into
mainfrom
claude/audit-github-actions-security-M1zbf

Conversation

@JRemitz

@JRemitz JRemitz commented May 14, 2026

Copy link
Copy Markdown
Contributor
  • Pin actions/checkout, astral-sh/setup-uv, and pypa/gh-action-pypi-publish
    to full commit SHAs to prevent supply-chain attacks via tag mutation.
    The pypa publish action is highest-risk as it runs with id-token:write.
  • Add explicit permissions: contents: read to ci.yml jobs (test and docs)
    so GITHUB_TOKEN is scoped to the minimum needed; previously inherited the
    repo default which may include write permissions.
  • Add contents: read to release.yml publish job permissions block for the
    same reason (was implicitly none, which works for public repos but is
    misleading; explicit is clearer and safer).

https://claude.ai/code/session_014iLSLtTwJkVR7B9PYqwJFA

claude added 3 commits May 14, 2026 03:36
- Pin actions/checkout, astral-sh/setup-uv, and pypa/gh-action-pypi-publish
  to full commit SHAs to prevent supply-chain attacks via tag mutation.
  The pypa publish action is highest-risk as it runs with id-token:write.
- Add explicit `permissions: contents: read` to ci.yml jobs (test and docs)
  so GITHUB_TOKEN is scoped to the minimum needed; previously inherited the
  repo default which may include write permissions.
- Add `contents: read` to release.yml publish job permissions block for the
  same reason (was implicitly none, which works for public repos but is
  misleading; explicit is clearer and safer).

https://claude.ai/code/session_014iLSLtTwJkVR7B9PYqwJFA
urllib3 2.6.3 → 2.7.0 (2 High):
  - CVE-2026-44431: sensitive headers forwarded in cross-origin redirects
  - CVE-2026-44432: decompression-bomb safeguards bypassed in streaming API

requests 2.32.5 → 2.34.1 (1 Moderate):
  - CVE-2026-25645: predictable tmp filename in extract_zipped_paths()

pytest 9.0.2 → 9.0.3 (1 Moderate):
  - CVE-2025-71176: /tmp race condition allows local privilege escalation

pygments 2.19.2 → 2.20.0 (1 Low):
  - CVE-2026-4539: ReDoS in AdlLexer via inefficient GUID regex

All 2491 tests pass at 100% coverage after the upgrade.

https://claude.ai/code/session_014iLSLtTwJkVR7B9PYqwJFA
This file is generated during queue-related tests and at runtime; it
should never be committed to the repository.

https://claude.ai/code/session_014iLSLtTwJkVR7B9PYqwJFA
@JRemitz
JRemitz merged commit 78e81bd into main May 14, 2026
8 checks passed
@JRemitz
JRemitz deleted the claude/audit-github-actions-security-M1zbf branch May 14, 2026 04:49
JRemitz added a commit to StreamnDad/reeln-dock that referenced this pull request Jun 9, 2026
…ble Dependabot (#9)

* security: pin GitHub Actions to commit SHAs, scope workflow permissions

- Pin every third-party Action to a full 40-char commit SHA with a
  # vX.Y.Z comment, defeating tag-mutation supply-chain attacks. Mirrors
  StreamnDad/reeln-cli#29.
- Add explicit job-level `permissions: contents: read` so GITHUB_TOKEN
  is least-privileged. Jobs that need write scopes keep them alongside.
- Add .github/dependabot.yml so Dependabot opens weekly grouped
  dependency PRs going forward, and is positioned to file security
  updates the moment they're published.

Co-Authored-By: Claude <noreply@anthropic.com>

* security: refresh package-lock.json and Cargo.lock for transitive fixes

`npm update` (root) and `cargo update` (src-tauri) within existing
semver constraints. Picks up patch/minor releases that close known
advisories without touching package.json or Cargo.toml.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
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.

2 participants