Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Security

Supply-chain and CI security are increasingly important for scientific Python projects; new attacks are targeting smaller packages than ever before thanks to the ease with which exploits can be found and utilized with AI. The first six months of 2026 had 4.5x the malitoius package volume of all of 2025[1].

Most of these attacks strung together smaller vulerabilties into something exploitable, often in CI like GitHub Actions. Once in, the attacks upload malitious packages that spread the attack via PyPI or NPM.

This page has recommendations for keeping your repository and its automation secure. This will never be complete, but even a few small steps can make your code much more secure.

GitHub Actions

SEC001 GitHub Actions workflows are a common source of security issues, due to how commonly it is used, and it’s original design being focused on ease of use and convenience.

Common security problems:

Zizmor

zizmor is a static analysis tool that audits your workflows for common problems, including many of the ones above. You can run it as a pre-commit hook or as a GitHub Action:

pre-commit
GitHub Actions
- repo: https://github.com/zizmorcore/zizmor-pre-commit
  rev: "v1.26.1"
  hooks:
    - id: zizmor

You can silence individual findings with # zizmor: ignore[rule] comments, or collect them in a zizmor.yml config file.

Footnotes