Exploit- cPanel & WHM Auth Bypass CVE-2026-41940 · Sorry Ransomware.

·

CVE-2026-41940 is an authentication bypass in cPanel and WHM with a CVSS score of 9.8. By chaining a CRLF injection in the Basic-auth handler with a session-encryption skip and a cookie-cache quirk, an unauthenticated remote attacker can promote a few crafted HTTP requests into full WHM API access — and from there, trivial root RCE.

Disclosed publicly by watchTowr Labs on April 29, 2026, the vulnerability was already being exploited in the wild for roughly two months prior. Within 24 hours of disclosure, multiple unrelated actors weaponised the bug, deploying the Go-based Sorry ransomware, Mirai botnet variants, and full-system wipes across an internet-exposed surface estimated at 1.5 million cPanel instances. Censys observed roughly 8,859 hosts already encrypted with the .sorry extension.

Ctrl-Alt-Intel published research on May 2 detailing a campaign targeting government and military entities in South-East Asia (notably Philippines and Laos) plus MSPs and hosting providers in Canada, South Africa, and the United States.

◈ Table of Contents

01 The Vulnerability 02 Exploit Chain Walkthrough 03 Exposure & Targeting 04 Post-Exploitation Payloads 05 Indicators of Compromise 06 Detection & Hunt Queries 07 Mitigation & Patching 08 MITRE ATT&CK Mapping 09 Sources
📋

Phase 1 — The Vulnerability

CVE-2026-41940
01
Affected Software & Severity Background

The defect lives in cPanel and WHM's Basic-auth handler and the session writer that backs it. cPanel's own NVD entry confirms the affected version range begins after 11.40 and persists through the patched releases issued in late April 2026. Hosting platforms running cPanel/WHM as their administrative back-end are squarely in scope; only customers of cPanel-on-cPanel (the company's own SaaS) are insulated.

FieldValue
CVE IDCVE-2026-41940
ComponentcPanel & WHM — Basic-auth handler / session writer
Vulnerability classAuthentication Bypass via CRLF Injection (CWE-93)
CVSS 3.1 base9.8 (Critical)
Authentication requiredNone — pre-auth, network-reachable
Affected versionscPanel/WHM after v11.40 through pre-patched April 2026 releases
Public disclosureApril 29, 2026 (watchTowr Labs)
In-the-wild exploitation~2 months prior to disclosure (per Help Net Security)
Estimated exposed surface~1.5 million internet-facing cPanel instances (Shodan)

cPanel underpins the administrative interface for a large share of shared and reseller hosting providers. A single unpatched MSP or hosting tenant translates into hundreds or thousands of customer sites compromised in a single intrusion.

🔗

Phase 2 — Exploit Chain Walkthrough

3 PRIMITIVES, 1 ROOT

watchTowr's analysis decomposes the bug into three chained primitives that, on their own, would be benign. Stitched together, they collapse the entire authentication boundary in a handful of HTTP requests with no credentials.

Fig. 1 — Three chained primitives collapse the cPanel auth boundary.
02
Primitive 1 — CRLF Injection in Basic-auth Step

cPanel's Basic-auth handler does not strip Carriage Return / Line Feed characters from the value supplied in the Authorization request header. Because the header value is later written into a session file, an attacker can inject arbitrary header keys and values — effectively forging fields the application will treat as legitimate session metadata.

◈ Conceptual injection
# Crafted Authorization header carrying an embedded CRLF Authorization: Basic YWFhOmJiYg==\r\nX-Injected: arbitrary-value # Server writes the entire raw value into the session file → arbitrary fields land in session state
03
Primitive 2 — Encryption Skip via Malformed Cookie Step

cPanel normally encrypts a segment of the whostmgrsession cookie before writing session data to disk. The encryption is gated on the cookie containing all expected segments. By omitting one of those segments, the attacker steers the code into a branch that skips encryption entirely — meaning the CRLF-injected raw value lands on disk verbatim.

◈ Branching behaviour
# Well-formed cookie → encryption applied → injection neutralised cookie: whostmgrsession=part1:part2:part3 # normal flow # Malformed cookie → encryption branch skipped → raw injection persisted cookie: whostmgrsession=part1:part2 # vulnerable flow
04
Primitive 3 — Authentication-Bypass Logic Step

The session loader trusts session timestamps as a sign of legitimacy. If a timestamp field is present in the loaded session — exactly the kind of field the CRLF injection allows the attacker to plant — the password validation branch is skipped and AUTH_OK is returned unconditionally. With AUTH_OK, the request is treated as a privileged WHM administrator and full WHM API access is granted.

WHM's legitimate features (custom hooks, package management, PHP-FPM configuration) all run as root. Once the auth boundary is breached, a separate post-exploitation primitive is unnecessary — root RCE is one API call away.

🌐

Phase 3 — Exposure & Targeting

SCALE
05
Internet-Exposed Surface and Active Exploitation Footprint Telemetry

Shodan scans cited by Picus and others put the internet-exposed cPanel/WHM population at roughly 1.5 million hosts. By April 30, 2026 — one day after public disclosure — at least 44,000 IP addresses were observed scanning honeypots and brute-forcing exploitation against cPanel-style endpoints. Censys observed 8,859 hosts already exposing files with a .sorry extension, of which 7,135 were running cPanel or WHM.

cPanel CVE-2026-41940 exposure footprint
Fig. 2 — Exposure vs. exploitation footprint, late April–early May 2026.
🛡️

Government & Military (SE Asia)

Ctrl-Alt-Intel telemetry shows targeting of government and military entities in the Philippines and Laos via the same staging server.

☁️

MSPs & Hosting Providers

A smaller but high-impact set of MSPs and hosting providers in Canada, South Africa, and the United States are inside the same campaign cluster.

🌍

Mass Internet Background

Independent of the targeted campaign, opportunistic scanning is sweeping the open internet looking for vulnerable cPanel banners.

📦

Phase 4 — Post-Exploitation Payloads

SORRY · MIRAI · WIPES
06
Sorry Ransomware (Go / Linux) Ransomware

The most prevalent payload observed post-exploit is a Go-based Linux encryptor that appends .sorry to encrypted files and drops a ransom note instructing victims to negotiate via Tox. The Go runtime makes static binaries that drop cleanly onto a wide range of Linux distributions, which suits a campaign opportunistically targeting unrelated cPanel hosts.

AttributeValue
FamilySorry
PlatformLinux (x86_64 ELF, Go)
File extension.sorry
NegotiationTox messenger ID dropped in ransom note
Confirmed exposed hosts (Censys, May 2026)8,859 with .sorry filenames; 7,135 on cPanel/WHM
07
Mirai Botnet Variants & Full Wipes Secondary Payloads

Censys also documented Mirai-family botnet variants being deployed onto compromised hosts, plus a third bucket of intrusions where attackers simply wipe entire websites and their backups. The wipe behaviour is consistent with hacktivist or destructive actors riding the same exploit; the payload diversity confirms the bug is being weaponised by multiple unrelated crews simultaneously.

🧪

Phase 5 — Indicators of Compromise

IOC

Ctrl-Alt-Intel released indicators tied to the staging-server cluster. Censys publishes additional host-level indicators tied to .sorry-tagged hosts. For specific hash values, IPs, and domains, consult the original publications below — those operational artefacts change rapidly and re-publishing them risks staleness.

IOC TypePatternNotes
File extension.sorrySuffix appended to encrypted files by Sorry ransomware.
FilesystemRansom note in directories with newly created *.sorry filesNote instructs Tox-based negotiation.
HTTP request shapeAuthorization header containing \r\n (CRLF)Pre-exploit fingerprint at the Basic-auth handler.
Cookie shapeMalformed whostmgrsession with missing trailing segmentTriggers encryption-skip branch.
Web shells / backdoorsWHM custom hooks, PHP-FPM config drops, package post-install scriptsLegitimate WHM features abused for persistence.
NetworkSpike in unauthenticated requests to /whm/* and /cpanel/* from new ASN sourcesCoincides with mass scanning activity April 30 onward.
📸
Ctrl-Alt-Intel — Staging Server & Targeting Map
View original IOCs and target list → ctrlaltintel.com/research/SEA-CPanel
VIEW →
📸
watchTowr Labs — Technical Walkthrough
Original disclosure with code paths and PoC notes → labs.watchtowr.com
VIEW →
🔍

Phase 6 — Detection & Hunt Queries

DETECTION ENGINEERING
08
Web Server Logs — Sigma-style Hunt Sigma

The strongest pre-exploit signal sits in raw web-server logs (Apache or Nginx fronting cPanel). Look for unusual byte sequences in the Authorization header and unexpected shapes of the whostmgrsession cookie. The two patterns below are tuned tight — false-positive rate should be near zero on a normal cPanel host.

◈ Sigma (web server)
title: cPanel CVE-2026-41940 — CRLF in Authorization header id: cyberhawk-cpanel-41940-crlf status: experimental logsource: product: webserver detection: selection: cs-uri-stem|startswith: - '/whm/' - '/cpanel/' cs-Authorization|contains: - '\r\n' - '%0d%0a' condition: selection level: high
◈ Sigma — malformed whostmgrsession cookie
title: cPanel CVE-2026-41940 — Malformed whostmgrsession cookie id: cyberhawk-cpanel-41940-cookie status: experimental logsource: product: webserver detection: selection: cs-Cookie|contains: 'whostmgrsession=' cs-Cookie|re: 'whostmgrsession=[^:]+:[^:]+(?!:)' condition: selection level: high
09
KQL — Microsoft Sentinel / Defender KQL

For environments shipping web logs into Sentinel, the same logic translates directly into KQL. Adjust the table reference to match your ingestion (CommonSecurityLog, W3CIISLog, Custom CEF parser, etc.).

// CRLF injection signal — last 24h CommonSecurityLog | where TimeGenerated > ago(24h) | where RequestURL matches regex @'/(whm|cpanel)/' | where RequestHeader contains '\r\n' or RequestHeader contains '%0d%0a' | summarize attempts=count(), paths=make_set(RequestURL) by SourceIP | order by attempts desc
10
Splunk SPL — Unauth Spike to /whm/ or /cpanel/ SPL
index=web sourcetype=access_combined uri_path IN("/whm/*","/cpanel/*") | eval crlf_hit=if(match(_raw,"\\r\\n") OR match(_raw,"%0d%0a"),1,0) | eval bad_cookie=if(match(_raw,"whostmgrsession=[^:]+:[^:]+(?!:)"),1,0) | stats sum(crlf_hit) as crlf sum(bad_cookie) as badcookie count by src_ip | where crlf>0 OR badcookie>0 | sort -count

◉ What These Queries Surface

  • Mass scanning bursts hitting /whm/* and /cpanel/* from previously unseen ASNs
  • Targeted exploitation attempts with embedded CRLF in Authorization
  • Session-cookie probes preceding successful WHM API access
  • Internal hosts sending these patterns — high signal of compromised neighbour
🛠️

Phase 7 — Mitigation & Patching

REMEDIATION
11
Patch & Compromise Assessment Action
  • 1Patch immediately. cPanel released fixed builds in late April 2026 covering the supported TIERs. Subscribe to cPanel's security feed and apply the latest 11.126.x / 11.128.x / 11.130.x update for your release channel.
  • 2Compromise-assess every cPanel host with internet exposure since February 2026. In-the-wild exploitation predates the patch by approximately two months — patching alone does not invalidate prior intrusion.
  • 3Inventory and rotate credentials for any account stored in or accessible via WHM (database creds, API tokens, billing-system links, FTP accounts, mail accounts).
  • 4Audit WHM custom hooks, package post-install scripts, and PHP-FPM configurations for newly added entries since February — these are the legitimate WHM features attackers turn into root persistence.
  • 5Restrict WHM access to a management VPN or IP allowlist where possible. There is no business case for unauthenticated WHM access from the public internet.
  • 6Hunt for .sorry filenames across hosted customer directories — Censys's footprint suggests many Sorry victims are still unaware.

If a host shows signs of cPanelSniper-style probing or a malformed whostmgrsession cookie in historical logs, treat it as compromised until proven otherwise. The exploit chain leaves a thin pre-exploit forensic footprint.

🗺️

Phase 8 — MITRE ATT&CK Mapping

TTPs
TacticTechniqueHow it manifests
Initial AccessT1190 Exploit Public-Facing ApplicationcPanel/WHM authentication bypass via CVE-2026-41940
ExecutionT1059 Command and Scripting InterpreterWHM custom hooks invoke shell scripts as root
PersistenceT1546 Event Triggered ExecutionCustom hooks executed on package events
PersistenceT1136 Create AccountNew WHM admin or system accounts created via API
Defense EvasionT1036 MasqueradingAbuse of legitimate WHM features (PHP-FPM, package mgmt)
DiscoveryT1083 File and Directory DiscoveryPre-encryption host enumeration by Sorry binary
ImpactT1486 Data Encrypted for ImpactSorry ransomware encryption with .sorry extension
ImpactT1485 Data DestructionFull website + backup wipe observed in subset of cases
Resource DevelopmentT1584 Compromise InfrastructureMirai variants pivoting compromised hosts into botnets
📚

Phase 9 — Sources

PRIMARY REFERENCES
watchTowr Labs — "The Internet Is Falling Down" — Original disclosure & technical analysis Ctrl-Alt-Intel — South-East Asian Military Entities Targeted via cPanel Help Net Security — Multiple threat actors actively exploit cPanel vulnerability Help Net Security — Two-month pre-disclosure exploitation window The Hacker News — Critical cPanel Vulnerability Weaponized Rapid7 ETR — CVE-2026-41940 cPanel & WHM Authentication Bypass Picus Security — Explained: cPanel & WHM Authentication Bypass NVD — CVE-2026-41940 record Trend Micro — Security Alert KA-0023294 Security Affairs — Hackers target governments and MSPs

CVE-2026-41940 is the kind of bug that defines a quarter for SOC teams. The auth boundary is gone, the post-exploit toolkit is the product's own legitimate features, and the exposed surface is measured in millions. Patching is necessary but not sufficient — every cPanel host with February-onward exposure deserves a compromise assessment.

Run our IOC Scanner against your hosting tenants, share the Sigma rules above with your detection team, and subscribe to CyberHawk's threat intel feed for follow-up coverage as the Sorry campaign evolves.

🔍 RUN THE IOC SCANNER 🚨 LIVE THREAT INTEL FEED

◈ Stay Connected

Follow CyberHawk Threat Intel for threat intelligence, deployment guides and hands-on SOC tooling content.

🌐 Website ▶️ YouTube ▶️ YouTube (2) 𝕏 Twitter / X ♪ TikTok ✈️ Telegram
🔍 IOC Scanner 🛠️ Live Tools 📚 Courses 🚨 Threat Intel 📝 Blog 📋 SOPs

"They can't exploit you if you are the Exploit."