Hackers Backdoor Linux Servers via Trojanized CWP Server

A Linux backdoor called CWPdoor is spread through a trojanized cwpsrv, the web server behind Control Web Panel. Here is how it works and how to check your servers.

By Buy Exam Voucher Team · · 4 min read

Short answer: CWPdoor is a passive Linux backdoor delivered by replacing the legitimate cwpsrv binary in Control Web Panel (CWP). XLab says real victims already exist. Check for the ngx_http_integrity_helper socket, odd cwpsrv helper processes and X-Ngx-Integrity strings, then replace the binary, upgrade and rotate credentials if you find a match.

What happened: a fake updater swaps in a backdoored web server

A new Linux malware called CWPdoor is spread through a trojanized cwpsrv. That is the web server behind the Control Web Panel (CWP) management interface. BleepingComputer reported it on November 5, 2026, based on research from XLab, the research arm of QiAnXin Technology Group.

XLab found the malware on June 29. It captured a script posing as an updater that replaced the real cwpsrv binary with a malicious one.

CWP, formerly CentOS Web Panel, is an open-source hosting admin tool. It is similar to cPanel and Plesk. Admins use it to manage email, DNS and databases.

Who is affected

Any Linux server running CWP where the cwpsrv binary was replaced. The fake updater targets two versions:

Item

Detail from the report

Binary replaced

cwpsrv

Versions replaced by the script

1.15.10 and 1.24.0

Exposed CWP instances (past month)

More than 340,000

Fixed version

Upgrade to the latest version after replacing the binary

Exposure is not the same as infection. The 340,000 figure counts CWP instances reachable on the public web. It does not count compromised hosts.

How serious it is and whether it is exploited

Treat it as serious. XLab calls CWPdoor "exceptionally stealthy" because it is passive and suppresses logs.

It also appears to be used already. A malicious cwpsrv file was uploaded to VirusTotal on September 30 inside an archive that also held the Ebury backdoor. It had zero detections. XLab says this shows "real victims already exist in the wild."

Here is how the backdoor works:

  • It sits dormant until the attacker sends a specially crafted request.

  • The command travels in an encrypted HTTP header, X-Ngx-Integrity-Data.

  • Two more headers carry a timestamp (X-Ngx-Integrity-Time) and an RSA signature (X-Ngx-Integrity-Sig).

  • The backdoor accepts the request only if the timestamp is within a five-minute window and the signature checks out.

  • Commands and output are encrypted with AES-256-CBC.

  • It interferes with the server's logging module, so the triggering request does not show in access logs.

The installer script also restores file and directory timestamps, deletes temporary files and wipes the command-history log. So file dates, access logs and shell history will not clear a server. Check the binary and the system itself.

The link between Ebury and CWPdoor is not confirmed yet. Follow the BleepingComputer report for updates from XLab.

Check your servers now

XLab recommends three checks. Run them as root on every host that runs CWP.

First, find the cwpsrv binary:

find / -type f -name cwpsrv 2>/dev/null

Next, look for the helper Unix socket named ngx_http_integrity_helper:

ss -xl | grep ngx_http_integrity_helper
find / -name '*ngx_http_integrity_helper*' 2>/dev/null

Then list cwpsrv processes and look for suspicious helpers:

ps -eo pid,ppid,user,lstart,cmd | grep '[c]wpsrv'

Finally, search the binary for the backdoor's header strings. Replace the path with the one find returned:

strings -a /path/to/cwpsrv | grep -i 'X-Ngx-Integrity'

A quick worked example

Say find returns one path and ss -xl prints nothing. But strings shows X-Ngx-Integrity-Data in the binary. Treat that host as compromised. The socket may simply not be active right now, and the strings are what the researchers told admins to look for.

A clean result on all three checks is good news. It is not proof, because the malware hides its tracks. If the host is exposed to the internet, also confirm you downloaded your CWP binary from a source you trust.

If you find a match

Follow XLab's guidance, in this order:

  1. Replace the backdoored binary with a legitimate copy.

  2. Upgrade CWP to the latest version.

  3. Rotate all control panel credentials.

  4. Investigate the host for additional malware.

Step 4 matters because of the Ebury archive. Ebury is a Linux backdoor and credential-stealing botnet active since at least 2009. A May 2024 ESET report said it had infected nearly 400,000 servers since it emerged. If your investigation turns up Ebury, assume stolen credentials and rotate beyond the panel, such as SSH keys and database passwords.

While you work, limit who can reach the panel. A firewall rule that allows only your admin IP ranges cuts the number of hosts that can send the trigger request. It does not remove a backdoor that is already installed.

What IT and security learners can take from this

This attack skips the vulnerability and goes after the update path. The attacker replaced a trusted binary, then hid it with restored timestamps and wiped history. Good Linux admins verify binaries, watch for unexpected sockets and processes, and keep logs somewhere an attacker on the host cannot edit.

Those habits are core Linux administration skills. If you want a structured way to practice them, the XK0-005 exam guide covers CompTIA Linux+ prep. Our Linux and server administration certifications page lists related paths. When you are ready to sit the exam, the CompTIA Linux+ XK0-005 voucher is delivered by email within 12 hours.

Sources

Questions about this topic

What is CWPdoor?

CWPdoor is a Linux backdoor delivered through a trojanized `cwpsrv`, the web server used by Control Web Panel. It stays dormant until the attacker sends a signed, encrypted request. XLab describes it as exceptionally stealthy.

Will my web server access logs show an attack?

Probably not. The backdoor interferes with the server's logging module so the triggering request does not appear in access logs. Check the binary, the helper socket and the running processes instead.

Which cwpsrv versions did the fake updater replace?

The script replaces cwpsrv versions `1.15.10` and `1.24.0`. After replacing the bad binary with a legitimate copy, upgrade to the latest CWP version.

Is a clean scan enough to say my server is safe?

No. The malicious cwpsrv file had zero detections when it was uploaded to VirusTotal on September 30. Run the manual checks for the socket, helper processes and header strings as well.

Why does the timestamp in the request matter to the attacker?

The backdoor accepts a command only if the timestamp falls within a five-minute window and the RSA signature is valid. Changing the timestamp or the ciphertext alone breaks the signature. This gives the attacker replay protection.

Do I need to rotate passwords after cleaning the binary?

Yes. XLab advises rotating all control panel credentials once a compromise is confirmed. Also investigate the host for other malware, since an Ebury backdoor was found in the same archive.

Exam vouchers related to this article

Red HatAvailable

EX200

EX200 Red Hat Certified System Administrator (RHCSA) certification badge

Red Hat Certified System Administrator (RHCSA)

Associate · Linux

$338.99

$500.00
list price

Email · within 12 h

Valid 12 months

Details →
CompTIAAvailable

XK0-005

XK0-005 CompTIA Linux+ certification badge

CompTIA Linux+

Associate · Linux

$224.99

$399.00
list price

Email · within 12 h

Valid 12 months

Details →
CompTIAAvailable

CS0-003

CS0-003 CompTIA CySA+ certification badge

CompTIA CySA+

Professional · Security

$224.99

$439.00
list price

Email · within 12 h

Valid 12 months

Details →

Updated November 8, 2026 · reviewed November 8, 2026.