CWPdoor backdoor replaces Control Web Panel's cwpsrv binary
XLab found CWPdoor, a passive backdoor shipped as a trojanized cwpsrv binary for Control Web Panel and triggered by crafted HTTP headers; over 340,000 CWP instances are internet-exposed.
Researchers at XLab, the research arm of QiAnXin, documented CWPdoor — a passive backdoor shipped as a trojanized build of cwpsrv, the web server behind Control Web Panel (CWP, formerly CentOS Web Panel). A script posing as an updater swaps the legitimate binary for the malicious one, which then stays dormant until it receives a crafted HTTP request. XLab counts more than 340,000 CWP instances exposed on the public internet. The findings were reported by BleepingComputer; XLab's writeup is the primary source.
How the backdoor works
CWPdoor is passive: it does no beaconing and waits for a trigger request carrying three headers — X-Ngx-Integrity-Data, X-Ngx-Integrity-Time and X-Ngx-Integrity-Sig. It checks that the timestamp falls within a ±300-second window and verifies an RSA signature, then decrypts the command (AES-256-CBC) and hands it to a helper process. It tampers with the server's logging so the triggering request never appears in access logs. The installer script covers its tracks too: it restores file and directory timestamps, deletes temporary files and wipes the command-history log.
Delivery and timeline
The fake updater replaced cwpsrv on versions 1.15.10 and 1.24.0, per XLab, which captured the updater on 29 June 2026. On 30 September 2026 the backdoor — filename cwpsrv.suspeito — was uploaded to VirusTotal with zero detections, in an archive that also contained the Ebury backdoor; XLab says the link to Ebury is unclear. No threat actor is named, and the initial-access method is unconfirmed.
Indicators
XLab published no hashes, domains or IPs. The usable indicators are behavioral:
- The filename
cwpsrv.suspeito. - A Unix socket named
ngx_http_integrity_helper. - Suspicious
cwpsrvhelper processes. - The
X-Ngx-Integritystrings inside the server binary.
CWP's server fingerprint is well known, so operators can scope their exposed footprint:
Shodan: "Server: cwpsrv"
Action checklist
- Check for the
ngx_http_integrity_helpersocket, unexpectedcwpsrvhelper processes, andX-Ngx-Integritystrings in the runningcwpsrvbinary. - If any are present, treat the host as compromised: replace the backdoored binary with a verified copy, rebuild or upgrade CWP to the current release, and rotate every control-panel credential.
- Investigate the host for additional implants — the VirusTotal archive bundled Ebury, a long-lived Linux server backdoor.
- Put CWP's admin interface behind a VPN or IP allowlist rather than exposing it to the internet.
Context
CWP has a long record of exploited server-side flaws — CVE-2022-44877 (OS command injection) reached CISA's KEV catalog, and CVE-2025-48703 (unauthenticated command injection in the file manager) followed. A trojanized cwpsrv is a different failure mode — the attacker is replacing the server, not exploiting it — but the common thread is the same: a widely exposed hosting panel with a large, under-monitored install base. If you run CWP, assume it's a target and monitor the binary itself, not just its CVEs.