The most-used GitHub Action just shipped breaking changes to how it handles fork pull requests. Checkout v7 refuses to check out fork code by default when workflows run with elevated privileges, and it moved credentials out of .git/config into ephemeral files under $RUNNER_TEMP. Both changes address the same problem: containerized actions and fork contributors can read state they should not see.

This is not a feature release. This is a security boundary rewrite for the 8,699-star action that powers millions of CI/CD workflows daily.

The Pwn Request Problem

GitHub Actions workflows triggered by pull_request_target or workflow_run run with the base repository's GITHUB_TOKEN, secrets, and runner access. If the workflow checks out code from a fork, that fork's code executes with full privileges. Attackers submit a pull request, inject malicious workflow steps, and exfiltrate secrets or push to protected branches.

The attack surface is structural: