Poisoned Pipeline

Poisoned Pipeline / Incidents / AS109

AS109 · 2022-12

PyTorch-nightly torchtriton dependency confusion

PyPI

Between 25 and 30 December 2022, Linux pip installs of PyTorch-nightly
pulled a malicious torchtriton from PyPI instead of the namesake package
on PyTorch’s own index, because PyPI takes precedence. The extra binary
stole environment variables and files from the home directory. Stable
PyTorch packages were not affected. PyTorch’s own advisory is the
primary record; they replaced the dependency with pytorch-triton and
registered a dummy on PyPI. The inherited mapping treated this as T0113
(compromised user account); it is T0120.

Mapped techniques

supply-chain torchtriton on PyPI

T0120 · Initial Access · Dependency confusion

Same name as the internal nightly dependency; PyPI won the resolve.

T0109 · Resource Development · Publish malicious artifact

Malicious torchtriton uploaded to the public index.

T0107 · Reconnaissance · Discover internal artifacts names

The attacker needed the unpublished name torchtriton.

post-supply-chain PyTorch-nightly users

T0151 · Execution · Installation scripts

pip install of nightly pulled and ran the malicious wheel.

T0140 · Credential Access · Harvest tokens from environment variables

Env vars and home-directory files were exfiltrated.

T0201 · Impact · Customers compromised

Anyone who pip-installed Linux nightly in that five-day window.

Sources