Skip to content

Feat/security hardening#12

Merged
GondekNP merged 4 commits intomainfrom
feat/security_hardening
Mar 30, 2026
Merged

Feat/security hardening#12
GondekNP merged 4 commits intomainfrom
feat/security_hardening

Conversation

@GondekNP
Copy link
Copy Markdown
Contributor

This PR is some responsive security hardening against the class of attack we just saw here: https://www.aikido.dev/blog/telnyx-pypi-compromised-teampcp-canisterworm

  • Pin all GitHub Actions to commit SHAs — every action in docs.yml and the new zizmor.yml is
    pinned to a verified, GPG-signed commit that predates the March 19 attack window. Tags kept
    as comments for readability.

  • Scope workflow permissions — pages:write and id-token:write moved from top-level down to
    just the deploy job. The build job (which installs the full pixi env) now only has
    contents:read

  • Dependency cooldown — added exclude-newer = "2026-03-16T00:00:00Z" to pixi.toml so the
    solver can't pull in packages published during/after the attack window, even when re-solving
    the lockfile - note that with feat: Relative exclude-newer configuration prefix-dev/pixi#5786 being merged we will shift to a relative-time approach which will be a bit more user-friendly, but this is very conservative in the sense that any attempted updatw will just kick and require the user to update this hardcoded datetime.

  • Pin devcontainer base image — ghcr.io/prefix-dev/pixi image pinned to its digest so the tag
    can't be swapped out by a bad actor one day

  • Dependabot for Actions — new .github/dependabot.yml with monthly updates and a 14-day
    cooldown on new releases, which is maybe overly conservative but I'm a bit spooked!

  • Zizmor audit workflow — new CI workflow that runs a GitHub Actions security audit on any
    workflow file changes, results go to the Security tab!

@GondekNP GondekNP merged commit c7bf030 into main Mar 30, 2026
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.

1 participant