Someone stole an Azure service principal and wiped storage in seven minutes

By George Bailey   Published: 09/30/26   5 min read

Microsoft says the JADEPUFFER operator, tracked as Storm-3168, used two compromised Azure service principals in the same tenant to map a cloud estate, then delete more than 100 storage accounts in about seven minutes. Key Vaults, Function Apps, Virtual Machines, and App Services were in the blast radius. Resource locks and storage deletion protection were the only things that saved a few of the targets.

If your Azure apps authenticate with long-lived client secrets, especially ones that ever appeared in a public GitHub issue or repo, treat this as a morning inventory, not a research paper.

A service principal with Contributor rights is a remote wipe button you forgot you issued.

What happened

Sysdig first described JADEPUFFER in July 2026 as an agentic ransomware operation that automates reconnaissance, credential theft, lateral movement, and encryption. Microsoft Security Research published a Sep 25, 2026 investigation that expands that picture into Azure Resource Manager abuse.

In the observed tenant, one service principal spent more than 15 hours on discovery across VMs, subscriptions, and resource groups. A second principal then ran a compressed destructive window: more than 100 storage account deletion attempts in seven minutes, plus deletions of a Key Vault, Function App, and App Service plan. Parallel Azure SQL deletion attempts failed only because the actor used an unsupported API version. Attempts to remove Azure Site Recovery and Backup protection locks mostly failed too.

About half an hour later the same identity collected storage account keys with more than 30 successful ListKeys calls. Microsoft could not prove the exact initial access path, but one of the principals had its client ID, secret, and tenant ID posted in a public GitHub issue. Editing the issue did not revoke the secret. Storm-3168 linked infrastructure also probed Azure App Service paths related to WordPress, PHP-CGI, and LangFlow across other customers.

Why it matters

This is not a niche edge appliance story. Azure service principals sit under CI/CD pipelines, automation runbooks, and SaaS integrations. When they hold broad Contributor or Storage Account Contributor rights, an attacker who steals the secret can wipe recovery paths and then harvest keys for whatever remains.

The seven-minute clock matters for response design. If your playbook still assumes a human-paced ransomware dialogue, agentic cloud destruction will finish before the war room dials in. Independent resource locks and least-privilege workload identities are what actually bought time here.

What to do first

Forward this

If you own Azure subscriptions or the CI/CD that deploys into them: please confirm this week that no service principal with broad Contributor rights still uses a long-lived client secret, especially anything that ever landed in GitHub. Microsoft documented Storm-3168 deleting more than 100 storage accounts in seven minutes after stealing workload identities. Ask for a yes or no on resource locks for backup storage and on rotating any leaked app secrets.

Details

Hunt / verify

Slack paste: Azure: inventory service principals with Contributor/Storage rights, rotate any client secret that ever hit GitHub, enable resource locks + storage deletion protection on backup stores, alert on ARM deletes/ListKeys spikes (Storm-3168 / JADEPUFFER).

Sources

George Bailey

George Bailey is a cybersecurity researcher and writer at CyberExperts, covering cyber threats, AI, cloud security, vulnerabilities, and defensive strategies. His goal is to help security professionals quickly understand what matters most and how it impacts their organizations.