2026-11-08 — Control Web Panel cwpdoor Linux backdoor

Threat Overview

QiAnXin XLab identified a modified cwpsrv web-server executable containing a command-execution backdoor. Researchers captured an installer disguised as a version update; installation requires existing root access. Malicious requests can be excluded from the compromised web server access logs, limiting HTTP-based visibility.

References

– 2026-11-06: https://thehackernews.com/
– 2026-11-06: The Hacker News, “Hackers Hide Linux Backdoor in Control Web Panel Server to Execute Commands Without Logs”

Impacted Systems

Control Web Panel (CWP) self-managed Linux hosting servers running cwpsrv. Researcher-observed installer targets cwpsrv 1.15.10 and 1.24.0; this is not a complete vendor affected-version list. Prerequisite: attacker already has root. Internet-facing CWP administration may increase attack surface; no verified first-safe version or official patch build was established.

Why this matters

Recent verified reporting indicates a potentially consequential enterprise threat. Layered Sentinel hunting can surface related activity where supporting logs are ingested.

Exploitation Status

Researcher-confirmed malware and installer; an archive uploaded from Brazil suggests possible victims, but number and initial access vector are unconfirmed.

What this hunt looks for

No customer-specific Sentinel telemetry was reviewed during report preparation. The following queries are designed to assess authentication, system and endpoint process behavior, network traffic, and persistence where those data sources are ingested.

Required logs

This is a prepared hunt package, not a completed customer workspace investigation. Conclusions are limited to the tables and retention actually ingested into Microsoft Sentinel. Absence of matching activity cannot establish absence of compromise on unmonitored hosts or in non-ingested logs.

CWP service update or replacement indications

Syslog
| where TimeGenerated >= ago(30d)
| where SyslogMessage has_any ("cwpsrv","cwpdoor","Control Web Panel")
| where SyslogMessage has_any ("update","install","restart","replace","binary")
| project TimeGenerated,Computer,ProcessName,SyslogMessage

CWP web server launching shell tools

DeviceProcessEvents
| where TimeGenerated >= ago(30d)
| where InitiatingProcessFileName has "cwpsrv"
| where FileName in~ ("sh","bash","curl","wget","python3","nc","socat")
| project TimeGenerated,DeviceName,FileName,ProcessCommandLine,InitiatingProcessFileName

CWP executable file modifications

DeviceFileEvents
| where TimeGenerated >= ago(30d)
| where FileName has "cwpsrv"
| project TimeGenerated,DeviceName,ActionType,FolderPath,FileName,InitiatingProcessFileName

CWP process outbound communications

DeviceNetworkEvents
| where TimeGenerated >= ago(30d)
| where InitiatingProcessFileName has "cwpsrv"
| project TimeGenerated,DeviceName,RemoteIP,RemotePort,InitiatingProcessCommandLine,ActionType

Unusual inbound requests to web administration ports

CommonSecurityLog
| where TimeGenerated >= ago(30d)
| where DestinationPort in (2030,2031)
| summarize Requests=count(),Sources=dcount(SourceIP),SampleURLs=make_set(RequestURL,5) by bin(TimeGenerated,1h),DestinationIP
| order by Requests desc

CWP related service and privilege changes in Linux Syslog

Syslog
| where TimeGenerated >= ago(30d)
| where SyslogMessage has_any ("cwpsrv","cwp") and SyslogMessage has_any ("sudo","root","systemd","service","permission")
| project TimeGenerated,Computer,ProcessName,SyslogMessage

New remote peers for CWP-hosted web services

let Base=DeviceNetworkEvents | where TimeGenerated between (ago(30d)..ago(2d)) and InitiatingProcessFileName has "cwpsrv" | summarize by DeviceId,RemoteIP;
DeviceNetworkEvents | where TimeGenerated >= ago(2d) and InitiatingProcessFileName has "cwpsrv" | join kind=leftanti Base on DeviceId,RemoteIP | project TimeGenerated,DeviceName,RemoteIP,RemotePort,ActionType

Detection Notes

The highest-value first pass is the initial query when the required data is ingested; correlate with asset inventory before attributing activity. Generic process, network, and administrative events can reflect legitimate operations. DeviceProcessEvents, DeviceFileEvents, and DeviceNetworkEvents require endpoint telemetry ingested into Sentinel; Syslog requires forwarding; CommonSecurityLog requires suitable network or HTTP fields. A missing table or absent process command line is a visibility gap, not a negative result. No query can establish patch level without separate inventory. Backdoored cwpsrv may suppress its own access logs, so network-device or endpoint events are more reliable than host HTTP logs.

Leave a Reply