BGP Hijack Delivered a Poisoned Virtualizor Update

Attackers hijacked a network route, obtained a genuine TLS certificate through it, and served a malicious update that installed root access on hypervisors.

Make Every Update Earn Execution Trust
  • September 7, 2026

The upgrade came from the correct source. It had a valid certificate, issued by an actual authority, and not a single client reported any problem. Everything that the software was able to check turned out alright. Yet, the software package installed one more key to the root user.

What is BGP hijacking? BGP hijacking is an incident in which an organization proclaims ownership of certain IP address space that does not belong to them. Since the routers will accept this information based mostly on trust, all of the traffic will end up in the wrong place.

Thirty-Three Hours On A Borrowed Route

Announcing of AS62390 of 162.55.80.0/24 happened on August 28, 2026 at 20:57 UTC. This address block belonged to Hetzner. Announcing came through transit service with Hetzner’s AS24940 announced in the path and made it appear much more legitimate than it really was.

Address block contained Softaculous update and billing services, including the domains of the Virtualizor hypervisor management solution. Packets destined for these systems were delivered to attacker’s server.

Hetzner announced an alternative route the next day morning, and diversion rate reduced almost to zero during 11 hours. After that, another wave of attack started and lasted until 06:10 UTC on August 30 when the spoofing route got withdrawn.

Reach of the attack was not low. In time of the waves, 72% out of 368 RIPE collector peers suffered from diverted packets.

The Certificate That Proved The Wrong Thing

This is why this particular event deserves consideration. The attacker has not stolen any certificate nor has he forged one. Instead, a legitimate certificate has been issued by the public authority for 26 domains which did not belong to him.

Automation of the issuance process involves checking whether or not the entity requesting the certificate controls the domain in question. The public authority initiates the challenge and waits for the response to be delivered. The traffic involved in the verification process went through the compromised path.

This is why the verification procedure took place correctly at that time since the attacker had actually controlled the destination for the traffic of the domain in question. This is exactly what the verification process should have verified.

Thus, a perfectly valid but totally misleading certificate was obtained. The process of HTTPS operation was carried out in accordance with its specification requirements.

The Lock Was Real. The Address Was a Lie.

BGP

Border Gateway Protocol, the system networks use to tell each other which address ranges they can deliver traffic to.

ASN

Autonomous System Number, the identifier for a network taking part in that routing conversation.

Prefix

A block of addresses announced as a unit, written like 162.55.80.0/24, covering 256 addresses.

Route hijack

Announcing a prefix you do not hold, so other networks send you traffic meant for its real owner.

RPKI / ROA

Cryptographic records stating which network may announce which prefix, letting others reject false claims.

Domain validation

The automated check a certificate authority runs to confirm a requester controls a domain before issuing a certificate.

Code signing

A cryptographic signature applied by the publisher, letting the receiving system verify a package no matter how it arrived.

TECHNOLOGY TIMELINE
1989

BGP is designed for a network of mutually known research institutions, where announcements are accepted because there is no reason to lie.

1990s

Commercial growth turns that trust assumption into a structural weakness, though incidents are mostly treated as misconfiguration rather than attack.

2008

A widely publicized incident takes a global service offline when a national ISP’s attempt at local filtering leaks worldwide, showing the blast radius to a general audience.

2010s

RPKI arrives to let networks cryptographically declare who may announce what. Adoption is voluntary and proceeds unevenly.

PRESENT

Certificate issuance, software updates, and API traffic all ride on routing most organizations neither control nor monitor, while validation of route ownership remains partial.

MYTH VS REALITY
Common belief
What actually happens
“The padlock means the connection is safe.”
It means the connection is encrypted and reached the address routing sent it to. It does not confirm who is answering.
“A certificate authority would catch an impostor.”
Automated validation tests control of the domain’s traffic. Redirect that traffic and the impostor passes honestly.
“Updates come from the vendor, so they are trustworthy.”
Without a signature checked at the destination, a package is only as trustworthy as the path it travelled.
“Routing is the network team’s problem.”
Routing decides where your software’s update requests actually land, which makes it a software integrity problem too.
“We would notice a hijack.”
Diversion can last hours, resolve itself, and leave no trace on the receiving system beyond whatever the payload did.
WHERE THE TRUST DECISION SITS
Question Transport Security (TLS) Package Signing
What’s answered Is this connection private, and did it reach the address routing chose? Did the publisher actually produce this exact file?
Verified by The client, against a certificate authority The client, against the publisher’s key
Survives a route hijack No Yes
Survives a compromised mirror No Yes
Present in this incident Yes, and working correctly No

TLS did exactly what it promises. The trust decision the incident actually needed, confirming the file itself rather than the path to it, was never in place.

© 2026 XCITIUM THREAT LABS

What Landed On The Hypervisors

All installations of Virtualizor that performed the update check during a diverted period would get the malicious package. The update client would execute the package with root permissions.

The payload followed the usual list of actions. It would inject an attacker-controlled SSH key to the root account and create an additional account called proxyuser. Then came the installation of Java 17 version and the systemd service called java-jre-update.service located at /etc/systemd/system/.

One hosting company openly admitted that it discovered the attack and identified the same changes on 5 out of 34 hypervisor nodes running Virtualizor. In addition to that, it noted a successful password-based SSH login to proxyuser and no tampering with the customers’ VMs.

Softaculous admitted that the malicious package did reach some limited installations and not the general user base. Moreover, Softaculous cannot provide the definitive list of compromised servers as there are no logs on the server side.

The One Control That Was Missing

The core of the problem is a simple lack of verification that caused the result. The vendor himself described the issue the vendor’s clients were not verifying the packages through cryptography, thus even if some modified package were delivered to them, it would not be considered bad by their system.

The problem could have been solved through signing a package without a signature from the vendor is automatically invalid and does not work upon reception regardless of whether it came from the real server or not.

Softaculous has since shipped version 3.2.9.9 with a mitigation and analysis tool. Code signing for all packages is committed as a subsequent change. We have examined poisoned-update supply chains before, in the Axios npm compromise.

When Every Trust Signal Agrees And Is Wrong

Consider what was encountered by the detection mechanism, a perfectly valid updater running in a timely manner, reaching out to the legitimate domain of the vendor over a secured connection and installing a package. Good reputation check, good domain intelligence check.

That kind of behavior is not only normal it’s the intended behavior. It is built into all Windows endpoints in an enterprise environment.

The Execution Governance framework recognizes the true nature of the problem. Instead of checking whether installation behavior was malicious, the kernel level enforcement mechanism asks whether this particular code has been verified. Unseen package does not have such verification, no matter what domain it originates from.

Unknown code executes through Kernel API Virtualization mechanism, not unrestricted execution. File write operations get virtualized, registry access gets isolated. No matter how nicely the payload was delivered through the update channel, it still has to go through Kernel API Virtualization.

Conclusion: The Update Was Trusted. The Package Was Never Proven.

The defining lesson from the Virtualizor incident is not that TLS failed. TLS worked. The updater reached an address that routing presented as the vendor, received a technically valid certificate, established an encrypted connection, and downloaded an update through the normal workflow.

The missing trust decision was attached to the file itself.

During the BGP hijack, traffic destined for Softaculous infrastructure could be redirected to an attacker-controlled server. Because Virtualizor clients were not independently verifying update packages with a publisher signature, a malicious package delivered through that redirected path could still be accepted and executed with root privileges. The payload then added an attacker-controlled SSH key, created the proxyuser account, and established a systemd service for persistent access.

That distinction matters far beyond this incident. Transport security establishes properties about a connection. It does not prove that every file received through that connection was produced by the software publisher. When routing, mirrors, update infrastructure, or another delivery dependency is compromised, package integrity must survive independently of the path.

Why This Threat Matters

  • Every visible trust signal could look normal. The updater was legitimate, the domain was correct, HTTPS succeeded, and the certificate was valid.
  • Routing became part of the software supply chain. A network-layer trust failure changed where update requests arrived without requiring compromise of the vendor’s update client.
  • TLS could not answer the package-integrity question. A secure connection to the wrong destination does not establish who produced the downloaded file.
  • Root execution amplified the failure. Once accepted by the updater, the malicious package inherited the privileges required to create accounts, modify SSH access, and establish persistence.
  • The receiving system had little evidence of the diversion itself. The network path could return to normal while the changes made by the malicious update remained.
  • Package signing changes the trust boundary. A package whose publisher signature cannot be validated can be rejected regardless of which network path delivered it.

Where Defensive Control Must Operate

The first control must be package-level cryptographic verification. Update clients should verify that the publisher signed the exact artifact before installation, so trust remains attached to the package rather than the route used to retrieve it.

Xcitium Advanced EDR, powered by Xcitium’s patented Zero-Dwell platform provides an additional execution boundary on supported managed systems. If an unseen or untrusted package reaches the host through a poisoned update path, Execution Governance governs what that unknown execution may do at runtime before trust exists.

The two controls solve different problems: package signing verifies provenance, while Execution Governance limits what untrusted execution can do when upstream trust still fails.

Verify the Artifact, Not the Route

Softaculous has already added incident-specific remediation tooling and committed to package signing. Operators should still examine affected Virtualizor systems for unauthorized SSH keys, unexpected accounts, the java-jre-update service, and other persistence associated with the malicious package.

The architectural lesson is simple. A secure delivery channel cannot substitute for verifying what was delivered. When the network lies, trust has to survive the journey.

Like what you see? Share with a friend.

Move Away From Detection With Patented Threat Prevention Built For Today's Challenges.

No one can stop zero-day malware from entering your network, but Xcitium can prevent if from causing any damage. Zero infection. Zero damage.

Book a Demo