SecPod

Learn Search

Search across all Learn content

← Back to Security Research
Granted Without Asking: How CVE-2026-48558 Lets TaskWeaver and Djinn Stealer Walk in the Front Door

Granted Without Asking: How CVE-2026-48558 Lets TaskWeaver and Djinn Stealer Walk in the Front Door

A maximum-severity authentication bypass in SimpleHelp's OIDC flow, CVE-2026-48558, is being actively exploited to hijack technician sessions, even past MFA. Attackers use this access to deploy TaskWeaver, a stealth Node.js loader disguised as jQuery, then Djinn Stealer, which harvests cloud, developer, AI-assistant, and crypto-wallet credentials. Now in CISA's KEV catalog with a CVSS of 10.0, this is an urgent, assume-compromise scenario for any SimpleHelp OIDC deployment.

Jul 3, 2026By Santosh Sethuraman

Summary

An unknown threat actor has been observed exploiting CVE-2026-48558, a maximum-severity authentication bypass in SimpleHelp Remote Monitoring and Management (RMM) software, to deliver two previously undocumented malware families: TaskWeaver, a heavily obfuscated Node.js loader, and Djinn Stealer, a cross-platform credential harvester. The vulnerability, which carries a CVSS score of 10.0, allows an unauthenticated attacker to forge an identity token and obtain a fully privileged "Technician" session, even on servers configured to enforce multi-factor authentication.

What makes this intrusion notable isn't just the authentication bypass itself, but what happened after it. The compromised RMM platform gave the operator a trusted administrative channel to transfer files and execute commands across every endpoint the server managed. From there, TaskWeaver established a reusable, encrypted payload-delivery channel, and Djinn Stealer was used to systematically strip infected machines of credentials spanning cloud infrastructure, source control, package registries, AI development assistants, browsers, SSH, and cryptocurrency wallets, turning a single unpatched appliance into a pathway toward dozens of downstream environments.

Background of TaskWeaver and Djinn Stealer

The intrusion chain was first documented by a group of researchers, who investigated and contained an incident that began with exploitation of CVE-2026-48558 against an internet-facing SimpleHelp server. Details of the underlying vulnerability were disclosed earlier in June 2026, it was identified that the flaw stems from how SimpleHelp validates identity provider (IdP) assertions in deployments using generic OIDC or Azure AD OIDC authentication.

On analysis, the group of researchers named the two malware families it recovered from the intrusion TaskWeaver and Djinn Stealer. TaskWeaver was delivered under the filename jquery.js — a deliberate attempt to masquerade as the legitimate jQuery library and executed through the Node.js runtime. Djinn Stealer, recovered as a second-stage payload delivered by TaskWeaver, reuses the same obfuscation framework and embeds an identical RSA public key, directly linking the two tools to a single operator.

Djinn Stealer's collection rules go well beyond conventional browser credential theft, it specifically targets configuration, authentication, session, and project data for AI development assistants including Claude, Gemini, Codex, Cline, OpenCode, and Kilo. Because many of these tools use the Model Context Protocol (MCP) to connect to repositories, databases, and cloud accounts, stolen MCP tokens can hand an attacker the same downstream access a developer granted to their AI agent.

Vulnerability Details

CVE IDCVSS ScoreEPSS ScoreVulnerability Type
CVE-2026-48558 10.0 (Critical) 0.72% Authentication Bypass (missing OIDC JWT signature verification)

The flaw affects SimpleHelp deployments where OIDC-based technician authentication is enabled, specifically version 5.5.15 and prior, along with 6.0 pre-release builds. Because the server does not properly verify the signature on incoming identity tokens, an attacker anywhere on the internet can craft a token asserting any identity and be granted a live technician session, no credentials, phishing, or social engineering required. Standing technician permissions typically include remote endpoint access, script execution, and file transfer, giving the attacker an administrative foothold the moment the forged token is accepted.

Attack Methodology

Phase 1: Authentication Bypass via Forged OIDC Token The attacker submits a forged identity token containing arbitrary claims to a SimpleHelp server with OIDC authentication enabled. Because the server does not validate the token's cryptographic signature, it accepts the claims at face value and establishes an authenticated "Technician" session, bypassing password authentication and, in most cases, MFA enforcement as well, since technicians can self-register their MFA method on first login.
Phase 2: Abuse of Trusted RMM Capabilities With a live technician session, the attacker uses SimpleHelp's legitimate remote management functions, file transfer and remote command execution, to stage the next part of the intrusion. Because this activity flows through an authorized administrative channel, it inherits the appearance of a normal support session rather than a conventional exploit or phishing delivery.
Phase 3: TaskWeaver Delivery and Execution A JavaScript file named jquery.js is downloaded from a randomly generated *.trycloudflare[.]com staging URL and launched via node.exe <path>\jquery.js. Despite the filename, the file has no relation to the legitimate jQuery library, it is a 1.08 MB, single-line, heavily obfuscated Node.js loader that researchers track as TaskWeaver.
Phase 4: Fingerprinting and Anti-Analysis TaskWeaver reconstructs Node.js's native require function at runtime instead of calling it directly, hiding which modules it loads from static analysis tools. It checks for the Electron runtime, then collects a host fingerprint, operating system, hostname, MAC address, process list, and process count, to profile the victim environment before beaconing out.
Phase 5: Encrypted C2 Beacon The fingerprint is encrypted with a randomly generated AES-256-GCM key, and that key is itself wrapped using an embedded RSA-2048 public key (RSA-OAEP). The encrypted payload is split across the URL path and request body of an HTTPS POST sent to a lookalike domain, a[.]dev-tunnels[.]com, designed to resemble Microsoft's legitimate Dev Tunnels service. Only the operator's matching RSA private key can decrypt captured beacon traffic.
Phase 6: Payload Retrieval — "deliver" The C2 server responds with a JSON object specifying an action, script name, and base64-encoded, RSA-framed JavaScript payload. TaskWeaver supports a single command, deliver, which decodes the payload, sanitizes the filename, writes it to disk, and executes it in a new runtime context with full access to require, process, Buffer, and other native Node.js capabilities, effectively an "execute anything" primitive that lets the operator push any future-stage tooling without changing TaskWeaver itself.
Phase 7: Djinn Stealer Collection The recovered second-stage payload, Djinn Stealer, runs a rules-based collection engine across Windows, macOS, and Linux. It walks user home directories against a hardcoded rule set, applies file-size, depth, and per-rule collection limits, and excludes noisy paths such as caches, logs, .git, node_modules, and __pycache__. On Linux hosts it additionally reads /proc/<pid>/cmdline and /proc/<pid>/environ, which can expose passwords, API keys, and connection strings passed via command-line arguments or environment variables.
Phase 8: Encrypted Exfiltration Collected files are packed into a PAX-format TAR archive, compressed with GZIP, encrypted with AES-256-GCM, and the AES key is wrapped with the same RSA-2048 public key embedded in TaskWeaver. The archive is exfiltrated over plain HTTP to 96.126.130[.]126:58942. While the transfer itself is observable on the wire, the archive contents cannot be recovered without the operator's private key.

Djinn Stealer's collection scope is unusually broad for a commodity stealer. It targets Cloud platforms, Developer and deployment tooling, and Package registries and build tools, AI development assistants and Cryptocurrency wallets.

Indicators of Compromise (IOCs)

File Indicators

MalwareFilenameSHA-256
TaskWeaverjquery.js00cc86d1144020c24c8fbb3a8dc6b908926497ebd23be3bf854360f93d1c8f4c
Djinn Stealeruploadf4a72600a3735c2a4d843875ea61bbb6f935a1af51a81f2fbc992ce11ba94afc

Network Indicators

TypeIndicator
Loader staging*.trycloudflare[.]com
TaskWeaver C2a[.]dev-tunnels[.]com
TaskWeaver URI patternPOST /api/<base64url>.<base64url>.<base64url>
Djinn Stealer exfiltration96.126.130[.]126:58942
Djinn Stealer User-Agenttelemetry-client/1.0

Host and Behavioral Indicators

TypeIndicator
Execution commandnode.exe <path>\jquery.js
TaskWeaver filenamejquery.js
Djinn Stealer filenameupload
Reconnaissance artifactprocessList.txt

MITRE ATT&CK Mapping

Technique IDTechnique NameTactic
T1190Exploit Public-Facing ApplicationInitial Access
T1078Valid Accounts (forged technician session)Initial Access
T1219Remote Access SoftwareCommand-And-Control
T1059.007JavaScriptExecution
T1027Obfuscated Files or InformationStealth
T1036Masquerading (jquery.js filename)Stealth
T1552Unsecured CredentialsCredential Access

Visual Attack Flow

Mitigation

  1. Patch and restrict SimpleHelp immediately. Upgrade to version 5.5.16 or 6.0 RC2 or above, and remove technician interfaces from direct internet exposure until remediation is verified.
  2. Review authentication and session logs. Check OIDC configuration, technician-creation, session, file-transfer, and command-execution logs for unfamiliar accounts, anomalous IP addresses, unusual login times, or administrative activity without a corresponding support ticket.
  3. Terminate sessions and rotate exposed secrets. Invalidate active technician sessions and rotate credentials, API keys, integration secrets, and IdP configuration tied to the SimpleHelp server.
  4. Treat RMM platforms as privileged infrastructure. Place administrative interfaces behind a VPN or identity-aware proxy, enforce phishing-resistant MFA, and restrict access to dedicated administrative workstations.
  5. Alert on RMM-spawned scripting runtimes. Flag and investigate any instance of a remote-support tool launching Node.js, PowerShell, Python, Deno, or Bun, particularly from temporary, download, or user-writable directories.

Instantly Fix Risks with Saner Patch Management

Saner patch management is a continuous, automated, and integrated software that instantly fixes risks exploited in the wild. The software supports major operating systems like Windows, Linux, and macOS, as well as 550+ third-party applications.

It also allows you to set up a safe testing area to test patches before deploying them in a primary production environment. Saner patch management additionally supports a patch rollback feature in case of patch failure or a system malfunction.

Experience the fastest and most accurate patching software here.

Featured Posts

Open One Request, Total Persistence: Inside the SharePoint Flaw Attackers Are Exploiting
One Request, Total Persistence: Inside the SharePoint Flaw Attackers Are Exploiting

CVE Research

One Request, Total Persistence: Inside the SharePoint Flaw Attackers Are Exploiting

A critical SharePoint deserialization flaw, CVE-2026-50522 (CVSS 9.8), is under active exploitation just weeks after its July 2026 patch, following a public PoC. Attackers are using it to steal IIS machine keys in a single request, gaining persistence that survives patching alone. Now on CISA's KEV list, it's the third actively exploited SharePoint flaw in recent months, patch immediately and rotate machine keys.

Jul 24, 2026

Open ENCFORGE Ransomware: Anatomy of an AI-Focused Cyber Attack
ENCFORGE Ransomware: Anatomy of an AI-Focused Cyber Attack

CVE Research

ENCFORGE Ransomware: Anatomy of an AI-Focused Cyber Attack

Jul 22, 2026

Open UTA0533 Weaponizes KNUCKLEBALL: Inside the SonicWall SMA Zero-Day Exploitation Chain
UTA0533 Weaponizes KNUCKLEBALL: Inside the SonicWall SMA Zero-Day Exploitation Chain

CVE Research

UTA0533 Weaponizes KNUCKLEBALL: Inside the SonicWall SMA Zero-Day Exploitation Chain

Jul 20, 2026

Open One Email, Full Session Takeover: Inside Zimbra's Critical Classic Web Client Code Execution Flaw
One Email, Full Session Takeover: Inside Zimbra's Critical Classic Web Client Code Execution Flaw

CVE Research

One Email, Full Session Takeover: Inside Zimbra's Critical Classic Web Client Code Execution Flaw

Jul 20, 2026

Granted Without Asking: How CVE-2026-48558 Lets TaskWeaver and Djinn Stealer Walk in the Front Door | SecPod