Daily Top · Identity / Cloud / MSP

The SkyKick app credential is in hostile hands. Disable it in every tenant.

Huntress and Microsoft say a ConnectWise Cloud Backup OAuth secret minted Graph tokens across customer tenants. ConnectWise shut the app off overnight. Disabling it does not remove secrets already added.

RWP Ventures · 2026-10-17 · event 2026-10-15 · 16 min read · priority 9.3

Bottom line up front

CONFIRMED On 15 October 2026 a credential that belongs to ConnectWise Cloud Backup (formerly SkyKick Backup) was used to authenticate as the application itself into customer Microsoft 365 tenants and mint Microsoft Graph tokens. Huntress recovered that from Entra service-principal sign-in logs, not from rumor. The Application ID is 506e08f9-6e9a-4da4-942b-a099a03644ae. The source address Huntress, Todyl, ConnectWise, and Microsoft Threat Intelligence all name is 144.172.64[.]128. Microsoft TI, posting 17 October, called it an active supply-chain attack against a trusted multi-tenant OAuth app.

Do not collapse four facts.

  1. This is not a user password and not a CVE. The credential type Huntress and Todyl both record is a client assertion. It lives in ConnectWise’s tenant. Nothing a customer configured, and no MFA prompt, produced it. Conditional Access written for users does not apply. Revoking user sessions does not end it.
  2. Huntress’s 162 is a telemetry floor, not the estate. As of 19:00 UTC on 16 October, Huntress had confirmed unauthorized sign-ins in 162 tenants. The Hacker News, citing Huntress on 17 October, reported 173. Todyl independently saw the same app identity from the same class of infrastructure. Microsoft TI did not publish a count. The credential works in every tenant where the app is still consented and enabled. Tenants that stopped paying for SkyKick years ago and never removed the enterprise application are in scope.
  3. ConnectWise shutting the app off is containment, not the hunt. Overnight 17 October (status IDENTIFIED, 05:11 UTC), ConnectWise said it had identified unauthorized access to application identities and was shutting off Cloud Backup application access until further notice. It also said it has no indicators to date that partner backup archives were compromised. That is a statement about ConnectWise-held backup stores. It is not a statement about what Graph tokens did inside customer tenants.
  4. Disabling 506e08f9 does not remove secrets already added to other apps. Huntress documented one partner tenant where ConnectWise Cloud Management - MS Teams (24205314-2b89-4e07-a2a4-579e898a5640) added itself to Global Administrator at 03:44 UTC on 15 October, then a Python-urllib/3.12 client added client secrets expiring in 2028 to an MSP management application and to Huntress’s own Security Platform app. Huntress has not tied that persistence window to 144.172.64[.]128 with a source IP. Treat it as a separate hunt, not as proof that every tenant got a Global Admin.

The operator sentence: inventory Application ID 506e08f9 in every tenant you manage tonight, set it to disabled, then review credentials on every other enterprise application — especially MSP and security tools — for anything added since 13 October.

What happened

ConnectWise Cloud Backup is an MSP product. To back up mail, OneDrive, SharePoint, and Teams it holds application permissions in every tenant an administrator consented. One publisher credential, many tenants. That is the design.

Huntress’s timeline, from Microsoft’s own logs:

When (UTC)What Huntress sawStatus
13–14 OctoberPassword spraying against four law-firm tenants from 144.172.64[.]128, User-Agent curl/7.88.1. Two accounts smart-lockout. No successful user sign-ins in Huntress telemetry.CONFIRMED Huntress
15 October ~01:58In ~50 Huntress-monitored tenants, ConnectWise Cloud Management service principals (Exchange Online, Teams, Graph) assigned themselves directory roles, mostly Exchange Administrator. User-Agent kiota-dotnet — the SDK Huntress says ConnectWise’s own apps use. Huntress has not confirmed with ConnectWise that this was vendor automation.REPORTED Huntress; operator UNKNOWN
15 October 03:44–03:49One customer tenant: Cloud Management for Teams added itself to Global Administrator, then Python-urllib/3.12 modified two other applications (MSP management + Huntress Security Platform). Six credential adds succeeded, three failed, secrets set to expire 2028. A certificate add failed on thumbprint mismatch.CONFIRMED Huntress in one tenant
15 October 06:13–08:34App 506e08f9 authenticated from 144.172.64[.]128 and received Graph tokens. Huntress: tenants hit in sorted GUID order, seconds apart. Todyl: 07:11–08:47, ascending GUID, 1–6 minutes apart.CONFIRMED Huntress, Todyl, Microsoft TI

Todyl’s distinction from legitimate backup is useful and independently reached: real Cloud Backup egress is Azure private IPv6 (fd00:: / ULA). The malicious sign-ins were a single commercial VPS IPv4, a Python user-agent, one token per tenant, and in Todyl’s set included tenants with no active backup subscription. ConnectWise later confirmed the IP is associated with unauthorized activity.

ConnectWise’s first public note (16 October, 17:47 UTC) said it was investigating “attempts of unauthorized access associated with the ConnectWise Cloud Backup environment,” listed the IP and two user-agents, and said there was no indication partner backup data had been accessed. It did not name the Application ID. Overnight 17 October the status page moved to IDENTIFIED and ConnectWise shut off Cloud Backup application access. Backup jobs stop. Existing archives, ConnectWise says, remain and will be reachable when service returns.

Microsoft Threat Intelligence, 17 October, independently described the same object: a compromised trusted OAuth app, customer-granted permissions including Directory.ReadWrite.All, broad successful service-principal authentication from 144.172.64[.]128 on 15 October, Graph reconnaissance, and attempts to add additional credentials on the related service principal to keep direct access. Defender alert names Microsoft published: suspicious sign-in, Graph API activity from a Microsoft threat-intelligence IP, verified threat-actor IP. User-agents Microsoft added beyond ConnectWise’s list: python-requests/2.34.2.

MSP-community posts (r/msp, relayed by Blumira) described bulk mail / Teams / SharePoint pulls. ConnectWise has not confirmed downstream tenant data theft. Huntress has not confirmed mail or file access in the one audit log it reviewed in detail. Todyl could not attribute mailbox/file reads in subscribed tenants to the actor versus the backup job. Directory reads through Graph often leave no audit trail. Treat “no visible MailItemsAccessed” as a visibility limit, not a clean bill.

Why it matters

A backup app is consented to do what a ransomware operator wants at the identity layer: tenant-wide read, and in this product’s grant, write and restore, of mail and files, without a user, a device, or MFA. The blast radius is the MSP pattern. One publisher secret, every consented customer. Huntress’s sentence: the backup service needs broad access to do its job, and an attacker using its credentials inherits that access.

The second reason is persistence that survives the vendor kill-switch. Adding a client secret to an already-trusted application (ATT&CK T1098.001) gives the holder the same Graph rights as that app, from anywhere, until an administrator deletes the secret. Huntress saw that done to an MSP management app — which is often consented into downstream customer tenants — and to a security-platform app. ConnectWise turning Cloud Backup off does not delete those secrets. Disabling 506e08f9 does not delete them either.

The third reason is where defenders look. Interactive sign-in logs will not show this. The tab is Service principal sign-ins. Conditional Access exclusions for the backup app, if any exist, are how a VPS in AS14956 (RouterHosting; Entra geolocation Cheyenne, WY; Todyl enrichment Sydney) was allowed to look like a backup job.

This is not confirmed OT process impact. An industrial, water, or hospital tenant whose MSP installed SkyKick is still an IT compromise of Microsoft 365 at an industrial or clinical organization. Do not write a process event. Do not merge it with [yesterday’s BeyondTrust Remote Support / ARMORY CASTLE zero-day](/posts/2026-10-16-beyondtrust-cve-2026-102764-armory-castle/) or with [September’s ScreenConnect CVE-2026-84869](/posts/2026-09-14-screenconnect-cve-2026-84869-kev/). Same vendor family as ScreenConnect. Different product, different control plane, no CVE on this ticket.

Who / what is affected

AssetWhat to assumeStatus
Any Entra tenant with enterprise app 506e08f9-6e9a-4da4-942b-a099a03644ae enabled (display name ConnectWise Cloud Backup or SkyKick Backup)Publisher credential can mint Graph tokens until the app is disabled and ConnectWise rotates the secretCONFIRMED Huntress / Todyl / Microsoft TI
Tenants that used SkyKick years ago and never removed the appStill in scopeCONFIRMED as consent model; Huntress, Blumira
Huntress-confirmed unauthorized sign-ins162 as of 16 Oct 19:00 UTC; 173 in 17 Oct THN relayCONFIRMED Huntress floor; census UNKNOWN
Todyl-monitored tenantsSame app identity, 15 Oct 07:11–08:47 UTCCONFIRMED Todyl
ConnectWise-held backup archivesVendor: no indicators of compromise to dateCONFIRMED as vendor statement; independent verification UNKNOWN
Mail / SharePoint / Teams bulk theftMSP-community reports; not in Huntress’s one detailed audit log; Todyl cannot split actor vs backup readsREPORTED; data exposure ASSESSED potentially in every token-issued tenant
Global Admin + secrets on other appsOne Huntress partner tenant, 15 Oct 03:44 UTC, Cloud Management Teams appCONFIRMED Huntress; prevalence UNKNOWN
kiota-dotnet directory-role self-assignments ~01:58 UTC in ~50 tenantsHuntress: looks like vendor automation, unconfirmedUNKNOWN operator
Actor name / nation-stateNot publishedUNKNOWN
Privileged Remote Access / ScreenConnect / other ConnectWise productsNo evidence in this retrieval they share this credentialUNKNOWN; do not collapse
OT / ICS process writeNone in this retrievalUNKNOWN; do not infer
Ransomware useNone in this retrievalUNKNOWN

Technical context

RWP is not reproducing the OAuth client-credentials flow. Defenders need the object and the residue.

ConnectWise Cloud Backup is a multi-tenant app published from owner tenant 3f9cd7a0-127a-4ed4-bf06-2f830d5616b7 (ConnectWise S-K LLC / skykick.com). Customers grant application permissions. The attacker presented the publisher credential to Entra, Entra issued an app-only Graph token, and the token inherited whatever that tenant had already consented — Huntress and Todyl: mail and attachments including EWS, OneDrive and SharePoint, Teams chats, directory data, restore. Microsoft TI assessed Directory.ReadWrite.All among the abused grants. Todyl recorded CAE token = true, Conditional Access = notApplied, clientAssertion with empty key_id and thumbprint, session IDs beginning 009ae85a-.

Hunt without treating the token request as an exploit.

ArtifactWhy it is on the ticket
App ID 506e08f9-6e9a-4da4-942b-a099a03644aeCloud Backup / SkyKick Backup. Search by ID; default Enterprise applications filter hides it
App ID 24205314-2b89-4e07-a2a4-579e898a5640Cloud Management - MS Teams. Huntress persistence tenant
App ID 2399d300-6fca-4e6a-a686-399fefe75b83Cloud Management (older tenants: SkyKick Cloud Manager)
App IDs b78f6a77-d4e5-46fb-87e5-d1648bd02519, 0de14c77-b9b0-4137-9360-34878a929827, 412dcf96-176d-4b3a-a1b0-4981ad66971e, b2b55f5b-7758-4719-8d8f-88ae172e6bdbCloud Management Exchange Online, MS Graph, Partner Center, SharePoint Online — Huntress: disable if you cannot verify
App ID c921256f-04a7-44e8-9b2a-69c33929ba19SkyKick Partner Portal (MSP-community listing; confirm in-tenant)
144.172.64[.]128CONFIRMED unauthorized by ConnectWise, Huntress, Todyl, Microsoft TI
User-Agents Python-urllib/3.12, python-requests/2.31, python-requests/2.34.2ConnectWise + Microsoft TI. Combination with app ID and IP is the signal; none is unique alone
User-Agent kiota-dotnetHuntress: ConnectWise Cloud Management Graph calls in the tenants it reviewed
User-Agent curl/7.88.1Huntress: 13–14 Oct password spray from the same IP
Service-principal sign-ins tab, not User sign-insWhere this authentication is recorded
New client secrets / certificates on other enterprise apps since 13 OctoberT1098.001 residue; Huntress: disabling ConnectWise apps does not remove them
Directory role assignments by a ConnectWise/SkyKick app, especially Global Administrator or Privileged Authentication AdministratorHuntress persistence tenant; Microsoft TI follow-on

ATT&CK mapping for the ticket — public reporting, not a playbook:

TechniqueIDWhy it is on the ticket
Trusted RelationshipT1199Publisher credential in every consented tenant
Valid Accounts: Cloud AccountsT1078.004App-only sign-in as ConnectWise Cloud Backup
Steal Application Access TokenT1528Graph tokens minted from the stolen publisher secret
Account Manipulation: Additional Cloud RolesT1098.003Self-assigned Global Administrator / directory roles in the Huntress tenant
Account Manipulation: Additional Cloud CredentialsT1098.001Client secrets added to MSP and security-platform apps
Unsecured CredentialsT1552Standing OAuth client secret / assertion at the vendor

Threat / exploitation status

ClaimStatusSource
Publisher credential for app 506e08f9 used from 144.172.64[.]128 on 15 OctoberCONFIRMEDHuntress, Todyl, Microsoft TI, ConnectWise (IP)
Microsoft classification as active OAuth-app supply-chain attackCONFIRMED as Microsoft TI statement 17 OctMicrosoft TI
Huntress unauthorized sign-in floor162 (16 Oct 19:00 UTC)CONFIRMED Huntress
173 tenantsREPORTED 17 Oct via The Hacker News citing HuntressTreat as Huntress increment, not a census
Every consented tenant is reachable with that credential until disable + rotationCONFIRMED as consent modelHuntress, Todyl, Microsoft TI
ConnectWise shut off Cloud Backup application accessCONFIRMEDConnectWise status 17 Oct 05:11 UTC
Partner backup archives stolenNo indicators per ConnectWiseUNKNOWN independent; do not upgrade
Confirmed bulk mailbox/file exfiltrationMSP-community reports; not in Huntress’s one detailed audit; Todyl cannot split actor vs backupREPORTED; exposure ASSESSED
Global Admin + T1098.001 in one Huntress tenantCONFIRMED HuntressPrevalence UNKNOWN
Same operator for 03:44 persistence and 06:13 VPS sweepHuntress: no source IP on the earlier windowUNKNOWN
Actor name / attributionNot publishedUNKNOWN
CVE assignedNone in this retrievalNot a vulnerability ticket
On KEVNoExpected; this is credential theft, not a CVE
Same incident as ScreenConnect CVE-2026-84869No evidenceSeparate product
Same incident as BeyondTrust CVE-2026-102764 / ARMORY CASTLENo evidenceSeparate vendor and CVE
OT process impactNone in this retrievalUNKNOWN; do not infer
Ransomware KnownNo evidenceUNKNOWN

Confidence on the Application ID, the 15 October service-principal sign-ins from 144.172.64[.]128, Microsoft TI’s supply-chain classification, and ConnectWise shutting the app off: high. Confidence that Huntress’s 162/173 is the global victim count: low — it is a telemetry floor. Confidence that every token-issued tenant had mail or files copied: low as confirmed theft, moderate as potential exposure given the grant and the logging gap. Confidence that the 03:44 Global Admin tenant is the same operator as the VPS sweep: low. Confidence on actor identity: none.

What defenders should do

  1. Find the app by ID, not by name, in every tenant you manage — including inherited, acquired, and “we cancelled SkyKick in 2024” tenants. Entra → Enterprise applications → filter All applications → 506e08f9-6e9a-4da4-942b-a099a03644ae. Confirm publisher ConnectWise S-K LLC. Repeat for the Cloud Management IDs in the table above. CIPP bulk-disable is acceptable if you already use it; the control is the same.
  2. Disable, do not delete. Properties → Enabled for users to sign-in = No. Deleting drops consent and forces a new admin-consent cycle later. Disabling stops new tokens. Tokens already issued remain valid up to ~90 minutes. Blumira/Todyl: removing admin-consented permissions is a harder stop; export the permission list first — it is evidence. A perimeter firewall block of 144.172.64[.]128 does not stop Graph calls that originate at Microsoft.
  3. Leave it disabled until ConnectWise confirms the publisher credential has been rotated. Containment of the Cloud Backup service is not the same sentence. Huntress and Todyl both say do not re-enable on a status-page all-clear that does not mention rotation.
  4. Hunt credentials on every other enterprise application and app registration, especially MSP, backup, RMM, and security tools, for secrets or certificates added since 13 October that you did not create. Huntress: disabling ConnectWise apps does not remove those. Include the Huntress Security Platform application if you use Huntress. Remove unexpected secrets. If a ConnectWise/SkyKick app holds Global Administrator or Privileged Authentication Administrator, remove roles you did not grant after the app is disabled.
  5. Read the right logs. Service principal sign-ins for 506e08f9, IP 144.172.64[.]128, Python user-agents, any non-Azure IP. Directory audit: role adds and application updates by ConnectWise/SkyKick identities; User-Agent Python-urllib/3.12 vs kiota-dotnet. Unified audit: MailItemsAccessed, SharePoint FileDownloaded / FileAccessed, Teams, with ClientAppId = the app. Entra ID Free keeps sign-ins seven days — export now. Enable Microsoft Graph activity logs (P1/P2, not retroactive) so the next app-only read has a source IP.
  6. Tell customers the backup job will pause. Mail, Teams, and user sign-in keep working. ConnectWise says existing archives are intact. Decide whether a recovery-point gap matters before anyone re-enables.
  7. Keep the other clocks. CVE-2026-76519 (Cisco SEG), CVE-2026-0322 (PAN-OS), and CVE-2026-105133 / 105134 (AhsayCBS) are due today, 17 October. CVE-2026-21589 (Atlassian) is due 18 October. CVE-2026-102764 (BeyondTrust Remote Support) landed on KEV yesterday, due 19 October, forensicTriage: Yes — that is a catalog increment on [yesterday’s Daily Top](/posts/2026-10-16-beyondtrust-cve-2026-102764-armory-castle/), not this story. Do not steal the Entra owner for a Jira ticket. Do not skip the BeyondTrust rebuild because this article is about SkyKick.

RWP assessment

Score 9.3.

Highest-leverage development since yesterday’s BeyondTrust / ARMORY CASTLE write-up is a live, Microsoft-confirmed OAuth supply-chain against an MSP backup app, with Huntress/Todyl telemetry, a vendor kill-switch overnight, and persistence residue that the kill-switch does not touch. Evidence quality is high on the Application ID, the 15 October service-principal authentications, and ConnectWise shutting Cloud Backup off. Evidence quality is intentionally split on victim census (162/173 is a floor), on confirmed data theft versus logging gap, and on whether the Global Admin tenant is the same operator as the VPS sweep.

It outranks the BeyondTrust CVE-2026-102764 KEV add because that CVE was already [Daily Top 16 October](/posts/2026-10-16-beyondtrust-cve-2026-102764-armory-castle/). Yesterday’s catalog row (2026.10.16 / 1748, due 19 October, forensic triage Yes) plus CISA’s dedicated 16 October alert are a material increment — rebuild guidance did not change. It outranks Fortinet CVE-2025-61624 (same KEV batch; FG-IR-26-122; CWE-22; authenticated admin CLI path traversal; CVSS 3.1 6.5 / vendor temporal 5.4; FortiOS / FortiPAM / FortiProxy / FortiSwitchManager; due 19 October). It outranks AOMEI Backupper / UNC7017 (GTIG/Mandiant 16 October disclosure of May–July five-to-ten-minute update-server tampering) because those events are months old. It outranks due-today Cisco 76519, PAN-OS 0322, and Ahsay 105134 because those stories are already on the site.

What we are not saying: that every SkyKick customer had mail stolen; that ConnectWise backup archives are confirmed clean beyond the vendor’s statement; that ScreenConnect is in this incident; that this is a CVE; that the actor is named; that this is OT process impact; that ransomware is Known.

What we are watching

Sources

Sources

  1. Huntress — ConnectWise (SkyKick) Vendor Credentials Abused in M365 Attacks
  2. Todyl — Unauthorized Access Through the ConnectWise Cloud Backup Microsoft 365 App
  3. ConnectWise — Trust Center advisories
  4. ConnectWise — Cloud Backup status incident
  5. Microsoft Threat Intelligence — OAuth app supply-chain tracking 17 Oct 2026
  6. The Hacker News — Compromised ConnectWise Credential, 173 tenants, 17 Oct 2026
  7. Huntress Support — 2026 October SkyKick
  8. Blumira — ConnectWise Cloud Backup (SkyKick) compromise
  9. CISA — KEV JSON feed catalog 2026.10.16
  10. CISA — Urges Patching BeyondTrust Remote Support 16 Oct 2026
  11. CISA — Adds Two Known Exploited Vulnerabilities 16 Oct 2026
  12. Fortinet — FG-IR-26-122 Path Traversal in CLI
  13. Mandiant / GTIG — ARMORY CASTLE Exploits BeyondTrust
  14. RWP Ventures — BeyondTrust Daily Top 2026-10-16
  15. RWP Ventures — ScreenConnect Daily Top 2026-09-14
  16. RWP Ventures — Cisco SEG Daily Top 2026-10-15
  17. RWP Ventures — AhsayCBS Daily Top 2026-10-11