CVE Tools
A Stolen ConnectWise Credential Let an AI Agent Try 2,250 Microsoft 365 Tenants. Microsoft ties the China state-aligned actor Storm-0940 to the ConnectWise Cloud Backup breach, using the open-source A

A Stolen ConnectWise Credential Let an AI Agent Try 2,250 Microsoft 365 Tenants

Microsoft ties the China state-aligned actor Storm-0940 to the ConnectWise Cloud Backup breach, using the open-source ARTEX framework to automate password-spraying and OAuth abuse at machine speed. Two responding firms caution the attribution evidence isn't airtight.

There is no CVE here, and that's the point: nothing in Microsoft 365 or Graph had to be vulnerable for this to work. A threat actor Microsoft calls Storm-0940 stole a credential belonging to a trusted multi-tenant application — ConnectWise Cloud Backup — and authenticated as that application directly, inheriting every Graph permission customers had already granted it, no interactive sign-in required. What made this one different from the usual stolen-OAuth-token story is speed: Microsoft says the actor ran an open-source agentic framework called ARTEX to automate reconnaissance and OAuth abuse across thousands of downstream tenants, reaching privileged cloud access in under three hours in some cases. Two incident-response firms who watched the same traffic, Expel and Huntress, are more cautious than Microsoft's attribution write-up: a shared IP address proves the activity is connected, not that ARTEX specifically drove it.

2,250+M365 tenants Storm-0940 attempted sign-ins againstusing one stolen ConnectWise app credential
173tenants with confirmed unauthorized sign-insHuntress initially counted 162; later tracking put it higher
<3 hrsfastest time from initial targeting to privileged cloud access
151,000+failed password-spray logonsOct 10–14, 2026, peaking at 2,900/minute

What actually broke

ConnectWise's Cloud Backup app (formerly SkyKick Cloud Backup for Microsoft 365) is a multi-tenant application: once a customer grants it Graph permissions, it can act on that tenant's behalf without a human signing in again. Storm-0940 didn't exploit a flaw in that design — it stole the application's own credential and used it exactly as intended, just without ConnectWise's consent. Because Microsoft Graph already trusted the app, the stolen credential inherited whatever permissions customers had granted, including, in at least two tenants per independent researchers, enough to self-assign the Global Administrator role.

ApplicationClient ID
ConnectWise Cloud Backup506e08f9-6e9a-4da4-942b-a099a03644ae
ConnectWise Cloud Management2399d300-6fca-4e6a-a686-399fefe75b83
Cloud Management – MS Teams24205314-2b89-4e07-a2a4-579e898a5640
Cloud Management – Exchange Onlineb78f6a77-d4e5-46fb-87e5-d1648bd02519
Cloud Management – MS Graph0de14c77-b9b0-4137-9360-34878a929827
Cloud Management – Partner Center412dcf96-176d-4b3a-a1b0-4981ad66971e
Cloud Management – SharePoint Onlineb2b55f5b-7758-4719-8d8f-88ae172e6bdb

The attack chain

From password spray to 2,250 attempted tenants

  1. Oct 10–14: cross-tenant password spray — IP 144.172.64.99 targets 327 accounts across 8 organizations
  2. 151,000+ failed logons — Peaks at 2,900 failures/minute on Oct 11; no successful auth during this phase
  3. ConnectWise app credential compromised
  4. Attacker authenticates AS the trusted app — No interactive user sign-in needed — inherits the app's existing Graph permissions
  5. ARTEX automates recon + OAuth abuse
  6. 2,250+ tenants, 2,900 sign-ins/minute
  7. Privileged cloud access in <3 hrs — Fastest observed cases, per Microsoft
  8. Oct 16: ConnectWise discloses
  9. Oct 17, 07:00 UTC: app identities disabled

What ARTEX is

ARTEX is an open-source, multi-agent penetration-testing framework (written in Go with a Next.js frontend) that connects to external LLMs — Zscaler researchers found instances configured against DeepSeek, GLM and Grok through OpenAI-compatible gateways — to automate reconnaissance through exfiltration with little human input. It isn't exclusive to Storm-0940: the same framework has separately been tied to breaches at South Korean financial institutions this year, attributed by CrowdStrike to an unrelated, financially-motivated individual rather than a nation-state actor. Different operators, different motives, same off-the-shelf tool — worth remembering before treating every ARTEX sighting as the same threat.

The activity conducted by the threat actor through the usage of ARTEX framework did not result from a compromise of or a vulnerability in Microsoft corporate systems, products, or services.
— Microsoft Threat Intelligence

Containment timeline

ConnectWise's response

  1. ConnectWise discovers unauthorized access
  2. Initial advisory published
  3. Seven application identities disabled
  4. Technical investigation and remediation guide published
  5. Attribution update citing Microsoft threat intelligence
  6. Phased restoration updates
  7. Phased partner onboarding begins

What's confirmed vs. what's still open

Confirmed
  • A ConnectWise application credential was compromised and used to authenticate across tenants
  • 173+ tenants saw unauthorized sign-in activity
  • Microsoft and ConnectWise attribute the activity to a China state-aligned actor
Still unresolved
  • Whether mailboxes were read or files exfiltrated in any specific tenant
  • Whether ARTEX specifically (vs. other tooling) drove the downstream activity
  • Full scope of changes made inside affected tenants before containment

Who Storm-0940 is

  • China state-aligned; active since at least 2021; no known industry aliases
  • Historically gains initial access via password spraying and exploiting internet-facing apps
  • Persists by adding credentials to existing OAuth applications rather than planting new malware
  • Per Microsoft's broader research cited in ConnectWise's advisory, has targeted aerospace and defense, energy, financial services, government, legal, manufacturing, semiconductors and technology sectors

What to do

  1. Disable any ConnectWise Cloud Backup, Cloud Management, or legacy SkyKick application connections — but preserve logs and evidence before deleting or modifying anything.
  2. Inventory the App IDs above across your tenants even if the integration is no longer actively used.
  3. Review Entra ID sign-in and audit logs, Purview audit records, and SIEM data from at least October 15, 2026, extending back to October 1 if available.
  4. Watch for Defender alerts such as an application self-assigning the Global Administrator role, or sign-ins from verified nation-state threat-actor infrastructure.
  5. Search hunting queries by application ID rather than display name — compromised apps can be renamed.
Alert names Microsoft points to2 rules
other ×2

These are named Microsoft Defender detections referenced in Microsoft's advisory, not independent community rules — verify they are enabled, not just available, in your tenant.

Application self-assigned Global Administrator roleGitHub
Microsoft Defender XDR / Defender for Cloud Apps
Suspicious sign-in from verified nation-state threat actor infrastructureGitHub
Microsoft Defender XDR

Data as of October 25, 2026

Sources: Microsoft Threat Intelligence — Storm-0940 uses ARTEX agentic AI in ConnectWise supply chain compromise, ConnectWise Trust Center advisories.