Attackers used a stolen ConnectWise Cloud Backup app credential to sign in to Microsoft 365 tenants, some with admin roles.
An unknown attacker obtained the credential behind ConnectWise Cloud Backup, a backup service formerly called SkyKick, and used it to sign in to customers' Microsoft 365 environments. Security firms Huntress and Todyl, along with Microsoft, have described the activity as an active supply-chain attack. Huntress has confirmed unauthorized sign-ins in 173 partner and customer tenants. A tenant is an organization's dedicated slice of Microsoft 365. The suspicious activity began on October 15. Administrators started reporting it publicly the following Friday, and ConnectWise has since cut off access to the Cloud Backup application until further notice.
ConnectWise Cloud Backup helps managed service providers (MSPs) back up and restore their clients' Microsoft 365 and Google Workspace data. MSPs are companies that run IT for other businesses. To back up a Microsoft 365 tenant, the service needs wide permissions across mailboxes, OneDrive, SharePoint, Teams and directory data. Those permissions are granted through Microsoft Entra ID, Microsoft's identity system.
The reported timeline runs as follows:
curl/7.88.1. Huntress saw no successful user sign-ins from this activity.The exposure reaches every organization that has the ConnectWise Cloud Backup app installed in Microsoft 365, because the stolen credential works in every tenant where the app has been approved. Its legitimate application ID is 506e08f9-6e9a-4da4-942b-a099a03644ae.
Many affected tenants belong to MSPs or to the clients those MSPs manage, so much of the reachable data belongs to third parties. Some organizations that no longer actively used the app still appear to have been exposed, as the Reddit report shows. The only sector the sources name specifically is legal, through the four law firms targeted by password spraying. No geographic breakdown has been published.
Huntress also reports that other ConnectWise "Cloud Management" apps were involved in some tenants, covering Exchange Online, Microsoft Teams and Microsoft Graph.
In Microsoft 365, a third-party app is represented in each customer tenant by a service principal. A service principal is an identity for software rather than a person. When an organization approves, or "consents to," an app, the service principal receives a set of permissions. The app then proves who it is with a secret credential and receives access tokens.
According to Todyl, the attacker logged in directly as the backup application using its secret, with their own tooling. The resulting tokens carried every permission customers had already granted. No human user signed in, so protections such as multi-factor authentication (MFA) never came into play. Todyl says this access allowed reading and writing of mail and attachments, OneDrive and SharePoint files, and Teams chats, as well as restoring data. Microsoft believes the attacker probably abused existing permissions including Directory.ReadWrite.All, which allows broad changes to directory objects.
Beyond simply logging in, Huntress saw ConnectWise Cloud Management service principals give themselves directory roles, mostly Exchange Administrator, in nearly 50 tenants it monitors. In one partner tenant, the Cloud Management app for Microsoft Teams (ID 24205314-2b89-4e07-a2a4-579e898a5640) gave itself Global Administrator, the highest role. A Python script then added new client secrets to two other trusted apps in that tenant: an MSP management tool and Huntress's own security platform app. The whole sequence took about five minutes.
This step matters because MSP management tools are often approved across many customer tenants. A new secret on such a tool could extend the attacker's reach well beyond one organization. Microsoft also reported backdoor-style persistence after a successful service principal login, followed by reconnaissance through Microsoft Graph and attempts to add more credentials.
Researchers have linked several user agents to the malicious activity: python-urllib/3.12, python-requests/2.31 and python-requests/2.34.2. A user agent is the label software sends to identify itself.
This is not a software vulnerability with a CVE or a CVSS score. It is the abuse of a stolen credential, and it is being actively exploited. Semon summed it up bluntly: "The app's credential is in hostile hands."
The sources agree on the attacker IP address, the start date and the basic technique. They differ on how far the attacker went:
These findings may not actually conflict. Todyl's statement covers the backup app specifically, while Huntress's escalation findings involve separate ConnectWise Cloud Management apps. The reported tenant count has also changed over time, from 162 to 173.
ConnectWise says it has seen no sign that partner backup data was compromised. It adds that the existing backup archive is unaffected and will be available once service returns. Huntress warns, however, that some access, such as directory reads through Microsoft Graph, leaves no audit trail. A lack of evidence in the logs therefore does not prove nothing was read.
For Microsoft 365 administrators and MSPs:
506e08f9-6e9a-4da4-942b-a099a03644ae.For everyday users:
ITVedas analysis: This incident shows that an app approved once and then forgotten can hold standing access that MFA does not protect. Organizations should audit third-party service principals as carefully as human admin accounts, and remove permissions for tools they no longer use.
Want to understand the technology behind this story? ITVedas has beginner-friendly guides on every IT topic.
Explore IT Chapters →