TeamPCP "Mini Shai-Hulud" npm/PyPI worm (May 2026)
A self-propagating, cross-ecosystem supply-chain worm attributed to the threat actor "TeamPCP" and dubbed "Mini Shai-Hulud." On 2026-05-11 the attacker entered via TanStack's GitHub Actions CI pipeline and published 84 malicious artifacts within 6 minutes, ultimately trojanizing 160+ artifacts across npm, PyPI, and container images. The payload runs in a preinstall hook, harvests 90+ categories of developer/CI/cloud secrets (npm/GitHub tokens, AWS/Azure/GCP/Kubernetes creds, SSH keys, plus tool configs), self-propagates by backdooring every package the victim can publish, and can run a persistent destructive daemon that wipes developer home directories. Remediation: rotate all developer/CI/cloud credentials, pin to known-clean versions, and audit GitHub for unexpected repos, workflows, and tokens. Note: docker-image, GitHub-action, and openVSX IOCs are tracked separately (they use version ranges and are not package-inventory artifacts).
Affected packages
69 packages- npm@airtm/uuid-base32
1.0.2 - npm@opengov/qa-record-types-api
1.0.3 - npm@emilgroup/account-sdk-node
1.40.21.40.1 - npm@emilgroup/accounting-sdk
1.27.31.27.21.27.1 - npm@emilgroup/accounting-sdk-node
1.26.21.26.1 - npm@emilgroup/api-documentation
1.19.21.19.1 - npm@emilgroup/auth-sdk
1.25.21.25.1 - npm@emilgroup/auth-sdk-node
1.21.21.21.1 - npm@emilgroup/billing-sdk
1.56.21.56.1 - npm@emilgroup/billing-sdk-node
1.57.21.57.1 - npm@emilgroup/changelog-sdk-node
1.0.31.0.2 - npm@emilgroup/claim-sdk
1.41.21.41.1 - npm@emilgroup/claim-sdk-node
1.39.21.39.1 - npm@emilgroup/commission-sdk
1.0.31.0.21.0.1 - npm@emilgroup/commission-sdk-node
1.0.31.0.21.0.1 - npm@emilgroup/customer-sdk
1.54.51.54.41.54.31.54.21.54.1 - npm@emilgroup/customer-sdk-node
1.55.21.55.1 - npm@emilgroup/discount-sdk
1.5.31.5.21.5.1 - npm@emilgroup/account-sdk
1.41.21.41.1 - npm@emilgroup/document-sdk
1.45.21.45.1 - npm@emilgroup/document-sdk-node
1.43.61.43.51.43.41.43.31.43.21.43.1 - npm@emilgroup/document-uploader
0.0.120.0.110.0.10 - npm@emilgroup/docxtemplater-util
1.1.41.1.31.1.2 - npm@emilgroup/gdv-sdk
2.6.22.6.1 - npm@emilgroup/gdv-sdk-node
2.6.32.6.22.6.1 - npm@emilgroup/insurance-sdk
1.97.61.97.51.97.41.97.31.97.21.97.1 - npm@emilgroup/insurance-sdk-node
1.95.21.95.1 - npm@emilgroup/notification-sdk-node
1.4.21.4.1 - npm@emilgroup/numbergenerator-sdk-node
1.3.31.3.21.3.1 - npm@emilgroup/partner-portal-sdk
1.1.31.1.21.1.1 - npm@emilgroup/partner-portal-sdk-node
1.1.21.1.1 - npm@emilgroup/partner-sdk
1.19.31.19.21.19.1 - npm@emilgroup/partner-sdk-node
1.19.21.19.1 - npm@emilgroup/payment-sdk
1.15.21.15.1 - npm@emilgroup/payment-sdk-node
1.23.21.23.1 - npm@emilgroup/process-manager-sdk
1.4.21.4.1 - npm@emilgroup/process-manager-sdk-node
1.13.21.13.1 - npm@emilgroup/public-api-sdk
1.33.21.33.1 - npm@emilgroup/public-api-sdk-node
1.35.21.35.1 - npm@emilgroup/setting-sdk
0.2.30.2.20.2.1 - npm@emilgroup/setting-sdk-node
0.2.30.2.20.2.1 - npm@emilgroup/task-sdk
1.0.41.0.31.0.2 - npm@emilgroup/task-sdk-node
1.0.41.0.31.0.2 - npm@emilgroup/tenant-sdk
1.34.21.34.1 - npm@emilgroup/tenant-sdk-node
1.33.21.33.1 - npm@emilgroup/translation-sdk-node
1.1.21.1.1 - npm@leafnoise/mirage
2.0.3 - npm@opengov/form-builder
0.12.3 - npm@opengov/form-renderer
0.2.20 - npm@opengov/form-utils
0.7.2 - npm@opengov/ppf-backend-types
1.141.2 - npm@opengov/ppf-eslint-config
0.1.11 - pypitelnyx
4.87.14.87.2 - npm@pypestream/floating-ui-dom
2.15.1 - npm@teale.io/eslint-config
1.8.161.8.151.8.141.8.131.8.121.8.111.8.101.8.9 - npm@virtahealth/substrate-root
1.0.1 - npmbabel-plugin-react-pure-component
0.1.6 - npmcheckmarx-util
1.0.4 - npmcit-playwright-tests
1.0.1 - npmeslint-config-ppf
0.128.2 - npmeslint-config-service-users
0.0.3 - npmjest-preset-ppf
0.0.2 - npmopengov-k6-core
1.0.2 - npmreact-autolink-text
2.0.1 - npmreact-leaflet-cluster-layer
0.0.4 - npmreact-leaflet-heatmap-layer
2.0.1 - npmreact-leaflet-marker-layer
0.1.5 - pypilitellm
1.82.71.82.8 - npm@emilgroup/discount-sdk-node
1.5.21.5.1