Poisoned Pipeline

Poisoned Pipeline / Incidents / AS67

AS67 · 2026-07

mrmustard 0.7.4 PyPI credential stealer via stolen publish token

PyPIGitHub ActionsKubernetes

On 24 July 2026 XanaduAI’s quantum photonics library mrmustard 0.7.4
appeared on PyPI with no matching git tag. An attacker who took over
maintainer ziofil used throwaway GitHub Actions workflows to recon
self-hosted runners (whoami) then POST the repo’s PyPI and Codecov
tokens to webhook.site. With the token they uploaded 0.7.4; only the
tarball’s __init__.py carried a fake _check_tf_compatibility() that
on import stole SSH keys, AWS and Kubernetes configs, skipped CI, and
installed cron, a .pth hook, and a shell-rc persistence. First reported
by Ilyas Makari / Aikido (GitHub issue 656); StepSecurity detonated it.

Mapped techniques

supply-chain stolen pypi token plus poisoned wheel

T0113 · Initial Access · Compromised user account

Maintainer GitHub account ziofil taken over.

T0166 · Execution · Trigger pipeline execution

Throwaway workflows on self-hosted runners then secret dump.

T0140 · Credential Access · Harvest tokens from environment variables

PyPI and Codecov secrets posted to webhook.site.

T0121 · Resource Development · Compromised legitimate artifact

0.7.4 existed only on PyPI, not in git.

T0184 · Credential Access · Harvesting sensitive information from files

SSH keys, AWS credentials, kubeconfig on import.

T0172 · Execution · Runtime backdoor

Cron, site-packages .pth, and shell-rc persistence.

Sources