cPGuard Supply-Chain Attack: Hijacked Update Put a Backdoor

A hijacked software update turned a server security tool into the attack itself. OPSSHIELD, the company behind cPGuard, has disclosed that an attacker broke into its infrastructure in early November 2026 and pushed a malicious update through the product's own update channel. About 2,950 customer servers installed it, and the update ran as root, copied the servers' most sensitive secrets, and left a hidden backdoor behind.
cPGuard is security software for web hosting servers, commonly used on cPanel, DirectAdmin and Plesk systems and on standalone Linux servers. Its job is to protect the servers it runs on. In this incident, the trust that hosting providers placed in its automatic updates was exactly what the attacker exploited.
How the attack unfolded
OPSSHIELD published a detailed timeline in its security incident disclosure of 3 November 2026. The attacker began probing the company's billing portal, manage.opsshield.com, at 15:38 UTC on 1 November, registered a customer account under a false identity later that afternoon, and ordered a free cPGuard trial. By 22:58 UTC the attacker had gained the ability to run commands on the billing and licensing server.
In the early hours of 2 November, between 02:04 and 02:09 UTC, the attacker used a stolen access key to upload a fake cPGuard update to the company's update storage. Between 02:08 and 03:20 UTC, cPGuard agents on customer servers installed the fake update as part of their normal update cycle. The whole window, from first probe to fake update, took about ten hours. OPSSHIELD says it detected the attack within 12 hours.
What the fake update did
The fake update was a short script, not a long-term implant, but it ran with root privileges. On the servers that installed it, it read the local password hash file and user list, root's SSH private keys and authorised keys, the MySQL root password where stored, root's shell history, and cloud storage keys on a small number of servers. It staged the stolen files in a hidden directory and sent them to a server the attacker controlled.
It also left two things behind: a hidden root shell at /var/tmp/.cpg91511_sh, with files in /var/tmp/.i93677/, and a scheduled task at /etc/cron.d/i93677. The attacker also copied three of OPSSHIELD's own cloud servers and took a copy of billing records covering about 7,900 customer accounts, including names, company names, postal addresses, email addresses and bcrypt-hashed passwords.
Updating alone is not enough
OPSSHIELD published a clean update, version 5.88.26, which removes the hidden root shell, and a follow-up update also removes the scheduled task. But the company is clear that updating does not undo the theft. Any server that was online and running cPGuard between 02:08 and 03:20 UTC on 2 November should be treated as compromised, and its root-level secrets should be assumed known to the attacker.
Affected servers ran cPGuard versions 5.88.12 through 5.88.19. Administrators should update to the latest version, confirm the backdoor files and scheduled task are gone, and then change the root password and every local user password, generate new root SSH keys, change the MySQL root password and any database passwords stored on the server, and rotate any password, API key or token that appears in root's shell history or cloud configuration. Billing portal passwords should also be reset, and two-factor login turned on.
Why this incident matters
No CVE has been assigned, because this was not a software vulnerability in the usual sense. OPSSHIELD says no software bug was exploited; the attacker got in through its billing application and stole the keys used to publish updates. That distinction matters, because it shows how a supply-chain attack can succeed without any flaw in the product itself: the update channel was trusted, and the attacker controlled it.
The incident is a reminder that automatic updates are a trade-off. They deliver fixes quickly, but they also mean a single compromised signing or publishing key can reach thousands of servers in minutes. For hosting providers, the lesson is to treat any server that installed the fake update as fully compromised, rotate every secret it held, and check the other servers it could reach with stolen SSH keys.