Cyber Security News

Microsoft Python Client DurableTask Compromised by TeamPCP Hackers

Three consecutive releases of Microsoft’s official Python workflow SDK were poisoned with a multi-cloud credential-stealing worm, continuing the group’s relentless 2026 supply chain campaign.

The TeamPCP threat group has struck again this time targeting durabletask, the official Microsoft Python client for the Durable Task workflow execution framework.

Security researchers at Wiz disclosed that versions v1.4.1, v1.4.2, and v1.4.3 of the package were compromised and contained a worm-like malware payload. PyPI has since quarantined all three versions following Wiz’s analysis.

TeamPCP Hacks DurableTask Client

TeamPCP (also tracked as PCPcat and DeadCatx3) has been one of the most active supply chain threat actors of 2026.

Their campaign, codenamed Mini Shai-Hulud, began in early March with the compromise of Aqua Security’s Trivy scanner, then cascaded to Checkmarx GitHub Actions, LiteLLM, Telnyx, and dozens of npm packages.

Most recently, the group compromised more than 300 packages across the @antv npm ecosystem on May 19, 2026.

Wiz Research said in a report shared with Cyber Security News that the durabletask attack occurred just days after the group compromised guardrails-ai on May 11, with the infection chain traced back to the previously reported @antv wave.

A GitHub user account implicated in that wave was identified as having also targeted the microsoft/durabletask-python repository, with attack activity logged between 15:08 UTC and 15:16 UTC.


GitHub account targeted the microsoft/durabletask-python repository between 15:08 UTC and 15:16 UTC(source: Wiz)

During this window, the attacker copied the latest legitimate commit message from the main branch to disguise malicious activity.

The attacker had compromised the GitHub account through an earlier operation, then dumped GitHub Secrets from repositories the account had access to.

Among those secrets was a PyPI publishing token, which granted direct ability to push malicious releases to the official PyPI registry, bypassing code review entirely.

The dropped malware, rope.pyz, is a direct evolution of transformers.pyz used in the guardrails-ai compromise.

The payload targets Linux systems only and injects itself across multiple entry points : task.pyentities/__init__.pyextensions/__init__.py, and payload/__init__.py  , giving it more execution paths than prior versions.

Once triggered, the malware performs a sweeping credential theft operation, targeting:

  • AWS IAM credentials, Azure service accounts, and GCP tokens.
  • Kubernetes service accounts and HashiCorp Vault tokens.
  • Bitwarden, 1Password, and pass/gopass brute-forced using harvested passwords.
  • Shell history files (.bash_history, .zsh_history) for additional secrets.

The worm then propagates via AWS SSM and Kubernetes lateral movement, spreading to up to five additional targets per infected host.

The C2 infrastructure has also matured, shifting from raw IP to domain-based servers (check.git-service.com with backup t.m-kosche.com), with SSL verification now enabled.

Indicators of Compromise:

TypeIndicator
C2 Domain (Primary)check.git-service[.]com
C2 Domain (Secondary)t.m-kosche[.]com
Payload File/tmp/rope-*.pyz
Infection Marker (General)~/.cache/.sys-update-check
Infection Marker (K8s)~/.cache/.sys-update-check-k8s
Hash – rope.pyz069ac1dc7f7649b76bc72a11ac700f373804bfd81dab7e561157b703999f44ce
Hash – durabletask-1.4.1.whl7d80b3ef74ad7992b93c31966962612e4e2ceb93e7727cdbd1d2a9af47d44ba8
Legacy C2 IP83.142.209.194
Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat intelligence platforms such as MISP, VirusTotal, or your SIEM.

What Security Teams Must Do Now:

  1. Search immediately: Audit lockfiles and CI logs for durabletask versions 1.4.1, 1.4.2, or 1.4.3. Check for /tmp/rope-*.pyz on Linux hosts.
  2. Check infection markers: Look for the ~/.cache/.sys-update-check directory and running python3 /tmp/managed.pyz processes to confirm payload execution.
  3. Rotate all credentials:  AWS IAM keys, Azure, GCP, Kubernetes service accounts, Vault tokens, and any passwords stored in Bitwarden or 1Password should be treated as compromised.
  4. Audit AWS SSM and Kubernetes: Review CloudTrail for SSM:SendCommand calls and Kubernetes audit logs for unexpected kubectl exec activity.
  5. Block C2 infrastructure: Deny DNS and proxy access to check.git-service.com and t.m-kosche.com; block outbound traffic to /v1/models, /audio.mp3, and /api/public/version endpoints.

Follow us on Google NewsLinkedIn, and X to Get More Instant Updates.

Abinaya

Abi is a Security Editor and fellow reporter with Cyber Security News. She is covering various cyber security incidents happening in the Cyber Space.

Recent Posts

Microsoft Releases Emergency Windows 11 Update Following Patch Tuesday Bugs

Microsoft has pushed out an emergency, out-of-band Windows 11 update after its September Patch Tuesday…

3 minutes ago

Top 10 Best Cloud Detection & Response (CDR) Solutions in 2026

CDR is the runtime, real-time half of cloud security: while CSPM tells you what’s misconfigured,…

7 minutes ago

Top 10 Best SaaS Security Posture Management (SSPM) Tools in 2026

Your SaaS estate M365, Salesforce, Workday, Slack, hundreds of others is a sprawl of misconfigurations,…

13 minutes ago

Top 10 Best Data Security Posture Management (DSPM) Tools in 2026

DSPM finds sensitive data you didn’t know you had, classifies it, maps who can reach…

18 minutes ago

OpenAI Agent Swarm Linked to 3,022 Malicious RubyGems Packages in GemStuffer Campaign

Open-source packages are meant to save developers time. In the GemStuffer campaign, that trust became…

29 minutes ago

Google Chrome 153 Update Fixes 42 Security Flaws, Including 3 Critical Ones

Google has released an important Chrome 153 security update that fixes 42 vulnerabilities across the…

5 hours ago