Get a free audit
Apple credit Apple credits the researcher who runs our AI penetration testing.

Field Notes / Supply Chain

A free trial, a billing portal, one stolen key: how a security tool pushed a backdoor to 2,950 Linux servers.

On 2 November 2026 the update channel of cPGuard, a security agent for Linux hosting servers, shipped a fake update. It ran as root, copied password hashes, SSH keys and database passwords, and left a hidden root shell behind. The attacker started the afternoon before with a free trial and a fake customer account. Here is the timeline from the vendor’s own disclosure, what the payload took, and the checks for every agent you let update itself as root.

Author
Red Team Partners
Read
5 MIN READ
Filed
4 Nov 2026
A system administrator in a data centre, where security agents run with root on every server.

01 Eleven hours, from trial to root

t 15:38 UTC on 1 November someone started probing manage.opsshield.com, the billing portal for cPGuard. Within the hour they had registered a customer account under a false identity and ordered a free trial. At 21:17 they installed it on their own server to watch how the agent talks to the licensing system OPSSHIELD disclosure .

cPGuard banned them twice that evening. It did not matter. At 22:50 the attacker sent crafted requests to the portal’s callback pages, and by 22:58 they could run commands on the billing and licensing server. OPSSHIELD says its logs do not record the exact request that did it.

Somewhere on that server was an access key for the update storage. At 02:04 on 2 November the attacker used it to upload a fake update. At 02:08 the first agents installed it. At 02:13 the attacker copied three of OPSSHIELD’s cloud servers. The fake build kept installing until 03:20, and OPSSHIELD detected it within 12 hours OPSSHIELD advisory .

02 What the fake update took

~2,950
Customer servers that ran the fake root update between 02:08 and 03:20 UTC on 2 November. About 7,900 billing accounts were exposed as well.

OPSSHIELD disclosure, 3 Nov 2026

The payload was a short script, versions 5.88.12 to 5.88.19. On each server it read /etc/shadow and /etc/passwd, root’s SSH keys and known hosts, the MySQL root configuration, root’s shell history and, on a few servers, S3 storage keys. It sent them out, then left a setuid-root shell in /var/tmp and a scheduled task in /etc/cron.d OPSSHIELD disclosure .

Read that list as an attacker would. Shell history holds the passwords admins typed by mistake and the API tokens they pasted. Root’s SSH keys open every other server that trusts this one. On a shared hosting box, the MySQL root password opens every customer’s database. A clean update removes the shell. It does not take any of that back, which is why OPSSHIELD tells customers to rotate everything BleepingComputer, via daily.dev .

03 The agents you let update themselves

If you run cPGuard, OPSSHIELD’s steps come first: update to the latest build (it names 5.88.26 as the clean one), check /opt/cpguard/logs/install_log for 5.88.12 to 5.88.19, and confirm /etc/cron.d/i93677, /var/tmp/.i93677/ and /var/tmp/.cpg91511_sh are gone OPSSHIELD . Then rotate every secret the script could read.

If you do not run cPGuard, count the agents on your servers that fetch their own updates and run as root. A typical hosting server carries several: security, backup, monitoring, remote management, the panel. Each vendor’s release pipeline is part of your attack surface.

Check this week
  • List every agent that auto-updates and runs as root, and who at the vendor can publish a release
  • Keep secrets out of root’s shell history and out of plain config files an agent can read
  • Make sure root’s SSH key on one server does not open the others
  • Alert on outbound connections from agents to anywhere other than their known update and licensing hosts
  • Stage agent updates on one server for a few hours before the rest of the fleet takes them, where the vendor allows it

OPSSHIELD found it, stopped it and published its full timeline within a day. Find out now how far a poisoned update would get in your estate, before a vendor’s key ends up in someone else’s hands. Enterprise-grade. Not enterprise-priced.

References

Sources

  1. OPSSHIELD. “Security Incident Disclosure: manage.opsshield.com.” 3 November 2026. opsshield.com
  2. OPSSHIELD. “cPGuard security advisory: Update channel compromise.” 2 November 2026. opsshield.com
  3. daily.dev, summarising BleepingComputer. “Hackers hijack cPGuard autoupdate to deploy backdoor, steal data.” November 2026. daily.dev