Virtualizor BGP-Hijacked Update Compromise

Malicious update delivery through a diverted route · Linux hypervisor compromise · detection, response, and hardening
Threat
Virtualizor update-channel compromise
Type
software supply-chain and Linux root compromise
Severity
Critical
Version
v0.3 Draft · 2026-09-04
Author
slapopotamus
Confidence
High incident confidence; medium host-artifact generality
STATIC REVIEW PASSED
01

Executive Summary

What happened: Virtualizor disclosed that an unauthorized BGP announcement diverted traffic for 162.55.80.0/24 from 28 August through 30 August 2026. During that interval an attacker obtained a technically valid TLS certificate and served a modified update through the trusted Virtualizor path. Because the update client did not cryptographically verify packages, a small number of installations accepted malicious content. Virtualizor could not produce a definitive affected-host list, so every operator whose server could update during the interval needs evidence-led review.

Observed tradecraft: A hosting provider independently reported malicious modifications on five of 34 inspected hypervisor nodes. Its captured evidence included modified Virtualizor files, a root SSH key, a new local account, a Java payload launched from a hidden JVM cache path, systemd persistence, and outbound communication to published infrastructure. That observation is valuable but remains one provider's first-hand dataset; it is not proof that every exposed server received the same artifacts or sequence.

Detection strategy: Detection should begin with product inventory and update-window reconstruction, then move to exact hashes, network pivots, hidden-path Java execution, suspicious Virtualizor/PHP child processes, Linux authentication evidence, and file-integrity comparison. Q02 is the strongest portable host-compromise query, Q03 is an exact infrastructure pivot, Q04 needs a maintenance baseline, and Q01 only identifies likely Virtualizor servers. Routing proof, package provenance, user creation, SSH authentication, and authorized-key changes remain separate telemetry requirements.

Operational consequence: A confirmed root compromise is not safely resolved by deleting the visible service or payload. The running process may survive service-file removal, credentials and host trust may be lost, and the hypervisor is a control point for guest workloads. Preserve volatile and update evidence first, restrict management and update paths, rotate exposed credentials through an approved sequence, and rebuild confirmed compromised hosts from trusted media. Prevention should prioritize signed update provenance, controlled update egress, independent route monitoring, and recoverable host baselines.

Defender priority: Inventory every Virtualizor server, reconstruct the incident-window update path, preserve volatile evidence, and clean-rebuild any host whose root integrity cannot be established.
PriorityWhy nowCoverage deliveredKey limitation
Inventory every Virtualizor server, reconstruct the incident-window update path, preserve volatile evidence, and clean-rebuild any host whose root integrity cannot be established.Critical privileged-infrastructure exposure with current technical reporting4 analyst-led CQL queries; 2 explicit telemetry gapsStatic review only; router/routing, update, AAA, or authentication semantics require non-portable telemetry
02

Source and Claim Review

Current-run snapshots retain only sanitized plain-text evidence. Remote content was handled as untrusted data and no source-supplied command, code, or instruction was executed.

IDPublisherTierIndependenceAccessedStatus
S01Virtualizor / Softaculousprimary-vendor-incident-advisoryvirtualizor-softaculous2026-09-03T11:03:12Zcomplete-sanitized-excerpt
S02AlbaHost operator statement via LowEndTalkprimary-incident-responder-observationalbahost2026-09-03T11:03:12Zcomplete-sanitized-excerpt
S03RIPE NCCprimary-routing-telemetry-documentationripe-ncc2026-09-03T11:03:12Zcomplete-sanitized-excerpt
S04NISTgovernment-supply-chain-guidancenist2026-09-03T11:03:12Zcomplete-sanitized-excerpt

Claim ledger

ClaimStatementSourcesConfidenceCaveat
C01Virtualizor confirmed that a malicious update package reached a small number of installations during the incident window.S01highno definitive affected-host list
C02An unauthorized announcement for 162.55.80.0/24 diverted update and client-area traffic between 2026-08-28 20:57 UTC and approximately 2026-08-30 06:10 UTC.S01, S03highRIPE source supports the measurement method; incident interpretation is vendor-supplied
C03The attacker obtained a technically valid TLS certificate during the routing diversion, so affected connections did not necessarily show certificate warnings.S01highnone
C04The update client did not cryptographically verify packages, allowing a modified package to be accepted during the diversion.S01highpackage-signing remediation remained future work in the incident advisory
C05Virtualizor could not produce a definitive affected-server list and directed every operator to perform checks.S01highnone
C06An affected hosting provider reported 5 of 34 inspected hypervisor nodes contained the malicious modifications.S02mediumsingle provider's firsthand account
C07The provider observed modified Virtualizor files, an unauthorized root SSH key, Java payload execution, systemd persistence, and an unauthorized local account.S02mediumfirsthand observation from one provider
C08The provider captured the malicious Java process connected to 31.77.220.138:2025 and reported a proxyuser SSH login from 193.32.127.248.S02mediumfirsthand observation from one provider
C09The systemd service used Restart=always and could leave a running Java process after the service file was removed.S02mediumhost-specific observation
C10Confirmed root compromise cannot be remediated confidently by deleting the published artifacts alone; the affected provider recommends a clean rebuild.S02mediumincident-response judgment from the reporting provider
C11NIST supply-chain guidance supports provenance, integrity verification, supplier risk management, and incident-response controls for software updates.S04highgeneral authority, not incident evidence
03

Hunt Brief and Attack Chain

Hypotheses are separated into endpoint hunts and explicit evidence gaps; attribution beyond the cited sources is not inferred.

StepClaimsBehaviorPlatformGoal
1C02, C03, C04BGP diversion placed an attacker-controlled server in the Virtualizor update path with a valid TLS certificatenetwork and software supply chainverify incident-window exposure from routing and update logs
2C01, C04, C05a malicious Virtualizor update package was accepted by some installationsVirtualizor applicationidentify hosts that updated during the diversion and compare product integrity
3C07, C09modified product files launched a Java payload and systemd persistence as rootLinux hypervisor hostfind hidden-path Java execution, persistence, and service ancestry
4C07, C08the compromise added SSH access, created proxyuser, and established interactive accessLinux hypervisor hostcorrelate host changes and authentication evidence
5C08the Java payload communicated with published C2 infrastructureLinux hypervisor hostidentify exact infrastructure matches and process context

Hypotheses

IDBehaviorTelemetryUseLookbackValidation
H01Virtualizor product process inventoryProcessRollup2inventory30d — includes the incident window and establishes product presenceRun on an owner-confirmed Virtualizor host and a non-Virtualizor Linux host; verify result fields and expected contrast.
H02hidden-cache Java payload execution and systemd persistenceProcessRollup2hunt14d — covers the incident and response periodReplay only a benign lab service with a different inert JAR name, then test the exact string against a safely created process record; confirm no production execution is required.
H03connection to provider-observed C2 addressesNetworkConnectIP4hunt14d — covers the incident and response periodValidate with a synthetic event fixture or approved replay in an isolated test repository; do not connect to the published infrastructure.
H04suspicious child process from Virtualizor or PHP service contextProcessRollup2hunt30d — supports incident scoping and baseline comparisonRun unfiltered on a clean owner-confirmed Virtualizor host, document recurring maintenance children, then safely replay a benign echo command through a lab PHP parent.
H05unauthorized local account and SSH accessLinux authentication/audit repositorygap30d — includes compromise and responseConfirm which Linux auth/audit data is ingested, then validate against a benign test account in an isolated system.
H06incident-window update and route exposureVirtualizor update logs and routing telemetrygap2026-08-28 20:57Z through 2026-08-30 06:10ZCompare preserved update logs to RIPE routing snapshots and vendor-published known-good package records; endpoint telemetry alone is insufficient.

Affected surface and telemetry

Surface: Softaculous Virtualizor hypervisor control panel and update channel. Exposure: root context on Virtualizor hypervisor hosts; client/billing sessions traversing the affected range. Endpoint events cover only the documented process and IPv4 network views; the remaining platform evidence requires the named routing, product, authentication, AAA, configuration, or forensic repositories.

Coverage boundaries

  • No portable Falcon event proves BGP diversion, TLS certificate issuance, or update-package provenance.
  • Linux user creation, SSH authentication, and authorized_keys changes require tenant-specific audit/auth ingestion.
  • File-write telemetry for PHP and service files is not assumed; integrity comparison is required.
  • IPv6 network coverage is not supplied because the published indicators are IPv4 and no documented IPv6 behavior exists.
04

Consolidated IOC Table

Atomic values are transcribed only from current-run hashed source snapshots. Exact matches are retrospective evidence, not proof of maliciousness or authorization to block.

IDTypeValueContextSourcesConfidenceAction
I01sha256b81a4e1fab9fc4e404d57224fe71e2c143aa93942bd46998789bdc944a7870c7Java payload reported by vendor and providerS01, S02highdetect
I02domaincdn.nerat.ccpayload download domainS01, S02highdetect
I03domainconnect.ne-rat.xyzvendor-published C2 domainS01mediumdetect
I04ipv4193.32.127.248source of reported proxyuser SSH loginS02mediumhunt
I05ipv431.77.220.138destination of reported Java connection on TCP 2025S02mediumhunt
05

ATT&CK Mapping

ATT&CK mappings are analyst inferences from source-backed behavior, not vendor attribution statements.

TacticTechniqueNameBehaviorBasisSourcesClaims
Initial AccessT1195.002Compromise Software Supply Chaina malicious package is delivered through the trusted Virtualizor update pathanalyst inferenceS01C01, C02, C04
PersistenceT1543.002System Services: Systemd Servicea root-owned Java service persists the payloadanalyst inferenceS02C07
PersistenceT1098.004Account Manipulation: SSH Authorized Keysan attacker-controlled SSH key is added to root authorized keysanalyst inferenceS02C07
PersistenceT1136.001Create Account: Local Accountproxyuser is created and used for SSH accessanalyst inferenceS02C07, C08
Command and ControlT1071Application Layer Protocolthe Java payload maintains outbound C2 connectivityanalyst inferenceS02C08
06

Native / Non-CQL Hunts

These non-CQL hunts close the most important evidence gaps and should be correlated with the endpoint results.

HuntLog sourceLogicResponse
Update-window reconstructionVirtualizor update logs, proxy/DNS logs, and routing recordsFind completed update activity during 2026-08-28 20:57Z–2026-08-30 06:10Z; bind it to requested endpoints, package digests, and route history.Preserve raw records and package copies; escalate mismatched provenance or incident-window completion.
Linux identity and SSH reviewauth.log/secure, auditd, account files, and authorized_keys integrityReview proxyuser creation/login, root key additions, unexpected privileged access, and source 193.32.127.248.Preserve logs and keys before credential rotation; correlate with process and network evidence.
Product and host integrityVirtualizor installation, service units, filesystem, memoryCompare product files and service definitions with trusted media; acquire the reported Java process and hidden cache path.Clean-rebuild when root trust cannot be established; do not rely on deleting published artifacts.
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Query strategy: Q02 is the strongest host-compromise keeper; Q03 is a narrow infrastructure pivot. Q04 requires owner-approved maintenance exclusions, and Q01 is inventory only. The BGP diversion and update provenance remain non-CQL gaps.

All queries are STATIC-ONLY. Validate event population, fields, semantics, and volume in the intended repository before operational use.

Q01 · Virtualizor process inventory
CONF lowFP highCOST medium

Looks for: Linux process events whose image or command line references /usr/local/virtualizor. Accomplishes: establishes which endpoints likely host the product so the incident-specific hunts can be scoped; it is inventory, not evidence of compromise.

Trace: H01 · A01

// HUNT: Inventory processes associated with Virtualizor installation paths
// HYPOTHESIS: H01
// USE: inventory
// MITRE: N/A — inventory
// CONF: low
// FP: high
// COST: medium
// TIMEFRAME: 30d — includes the incident window and establishes product presence
// REQUIRES: ProcessRollup2 with ImageFileName, CommandLine, ComputerName, UserName, SHA256HashData
// FALSE POSITIVES: every legitimate Virtualizor process, update, backup, and administrator maintenance task
// TUNING: scope to Linux server groups and compare returned hosts with the application owner's inventory
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| (ImageFileName = /\/usr\/local\/virtualizor\//i or CommandLine = /\/usr\/local\/virtualizor\//i)
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, CommandLine, SHA256HashData])
| sort(@timestamp, order=desc, limit=1000)
Q02 · Hidden-cache Java persistence
CONF highFP mediumCOST low

Looks for: Java launched with the reported hidden cache payload or service marker. Accomplishes: catches the root persistence and payload-execution stage with a durable path signal, while retaining process context for containment decisions.

Trace: H02 · A02

// HUNT: Java payload or service marker associated with Virtualizor malicious update persistence
// HYPOTHESIS: H02
// USE: hunt
// MITRE: T1543.002
// CONF: high
// FP: medium
// COST: low
// TIMEFRAME: 14d — covers the incident and immediate response period
// REQUIRES: ProcessRollup2 with ImageFileName, CommandLine, ParentBaseFileName, UserName, SHA256HashData
// FALSE POSITIVES: internal testing or legitimate Java services deliberately using the same cache path or incident strings
// TUNING: exclude only documented security-test hosts and approved fixture hashes after owner review
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 1209600000)
| (CommandLine = /jre-runtime\.dat|java-jre-update\.service/i or ImageFileName = /\/usr\/lib\/jvm\/\.cache\//i)
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, ImageFileName, CommandLine, SHA256HashData])
| sort(@timestamp, order=desc, limit=1000)
Q03 · Published C2 address connections
CONF mediumFP mediumCOST low

Looks for: outbound IPv4 connections to the two provider-published incident addresses, preserving port and process context. Accomplishes: provides a narrow retrospective pivot for the C2 and SSH-access stage without making live contact with hostile infrastructure.

Trace: H03 · A03

// HUNT: Connections to provider-observed Virtualizor compromise infrastructure
// HYPOTHESIS: H03
// USE: hunt
// MITRE: T1071
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 14d — covers the incident and immediate response period
// REQUIRES: NetworkConnectIP4 with ComputerName, ContextBaseFileName, ContextProcessId, RemoteAddressIP4, RemotePort
// FALSE POSITIVES: security research, scanner traffic, sinkholing, or later reuse of the same addresses
// TUNING: exclude documented research sensors and require corroborating process, authentication, or file-integrity evidence
// VALIDATION: STATIC-ONLY
#event_simpleName = NetworkConnectIP4
| test(@timestamp >= now() - 1209600000)
| (RemoteAddressIP4 = "31.77.220.138" or RemoteAddressIP4 = "193.32.127.248")
| table([@timestamp, ComputerName, ContextBaseFileName, ContextProcessId, LocalAddressIP4, RemoteAddressIP4, RemotePort])
| sort(@timestamp, order=desc, limit=1000)
Q04 · Suspicious Virtualizor child execution
CONF mediumFP highCOST medium

Looks for: shell, download, Java, account, or service utilities tied to PHP, Virtualizor ancestry, or Virtualizor paths. Accomplishes: finds post-update root activity that may survive IOC rotation, but needs maintenance baselines before escalation.

Trace: H04 · A04

// HUNT: Suspicious utility execution tied to Virtualizor or PHP service context
// HYPOTHESIS: H04
// USE: hunt
// MITRE: T1059.004
// CONF: medium
// FP: high
// COST: medium
// TIMEFRAME: 30d — supports incident scoping and maintenance-baseline comparison
// REQUIRES: ProcessRollup2 with two-generation ancestry, ImageFileName, CommandLine, UserName
// FALSE POSITIVES: legitimate updates, backups, package management, administrator support, and monitoring tasks
// TUNING: scope to confirmed Virtualizor hosts and exclude owner-approved maintenance command lines, users, and time windows
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| FileName = /^(?:sh|bash|curl|wget|java|useradd|usermod|systemctl)$/i
| (ParentBaseFileName = /^(?:php|php-fpm|zzvirtservice|virtualizor)$/i or GrandparentBaseFileName = /^(?:php|php-fpm|zzvirtservice|virtualizor)$/i or CommandLine = /\/usr\/local\/virtualizor\//i)
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, GrandparentBaseFileName, FileName, ImageFileName, CommandLine, SHA256HashData])
| sort(@timestamp, order=desc, limit=1000)
08

Operationalization and IOA Candidates

Every query remains hunt-only. No alert package or Custom IOA is produced without tenant parse evidence, positive and benign tests, a measured baseline, routing, ownership, SLA, and rollback.

AlertQueryUseDecisionReadinessRationale
A01Q01inventoryhunt-onlydesign-onlyInventory queries do not represent threat alerts and remain analyst-invoked.
A02Q02hunthunt-onlydesign-onlyStatic-only query with no tenant parse, measured benign baseline, positive test, cadence, suppression, route, owner, or SLA evidence.
A03Q03hunthunt-onlydesign-onlyStatic-only query with no tenant parse, measured benign baseline, positive test, cadence, suppression, route, owner, or SLA evidence.
A04Q04hunthunt-onlydesign-onlyStatic-only query with no tenant parse, measured benign baseline, positive test, cadence, suppression, route, owner, or SLA evidence.
09

Machine-Readable IOC Appendix

Review expiration, infrastructure reuse, laboratory handling, and local authorization before operational use. Do not contact published infrastructure.

SHA2561 values
b81a4e1fab9fc4e404d57224fe71e2c143aa93942bd46998789bdc944a7870c7
DOMAIN2 values
cdn.nerat.cc
connect.ne-rat.xyz
IPV42 values
193.32.127.248
31.77.220.138
Source-tagged IOC CSV5 rows
type,value,action,severity,expiration,description,tags
sha256,b81a4e1fab9fc4e404d57224fe71e2c143aa93942bd46998789bdc944a7870c7,detect,high,review-2026-10-03,Java payload reported by vendor and provider,source:S01 source:S02
domain,cdn.nerat.cc,detect,high,review-2026-10-03,payload download domain,source:S01 source:S02
domain,connect.ne-rat.xyz,detect,medium,review-2026-10-03,vendor-published C2 domain,source:S01
ipv4,193.32.127.248,hunt,medium,review-2026-10-03,source of reported proxyuser SSH login,source:S02
ipv4,31.77.220.138,hunt,medium,review-2026-10-03,destination of reported Java connection on TCP 2025,source:S02
10

Hardening — Tiered and Deployable

Immediate — constrain active privileged exposure
  • Verify every Virtualizor server and current security-analyzer result (CTRL01) — Inventory every Virtualizor master and hypervisor; record running version, update history for 2026-08-28 20:57Z through 2026-08-30 06:10Z, and the vendor security-analyzer result without deleting findings. deployable-design Verify: Application owner compares inventory, version, update timestamps, and analyzer result to the incident window. Expected: Every in-scope node has an owner, recorded version/update history, and retained analyzer output. Rollback: Restore only the collection configuration changed for the audit; do not delete retained evidence. Authority: S01 · Virtualizor incident advisory, 2026-08-31.
  • Quarantine confirmed root-compromised hosts behind a continuity gate (CTRL02) — After preserving volatile and disk evidence, remove the node from management and customer control paths, block its management egress, migrate or restore workloads through the approved continuity plan, and rebuild the host from known-good media. deployable-design Verify: Verify the rebuilt host against trusted image digests, current Virtualizor release, clean analyzer output, approved SSH keys/users, and expected network destinations. Expected: Rebuilt node has no incident indicators, only approved identities/services, and passes owner health checks before re-entry. Rollback: Keep the node out of service and restore workloads to the last known-good platform if verification fails; do not return the compromised installation. Authority: S01/S02 · Virtualizor advisory and provider observation, accessed 2026-09-03.
Near-term — restore identity and host integrity
  • Constrain API keys and administrative access (CTRL03) — Remove unrecognized keys and accounts; issue replacement API credentials scoped to required nodes and trusted source addresses; restrict SSH to approved bastions and phishing-resistant administrator authentication where supported. deployable-design Verify: Use read-only API, SSH, and account listings from an approved bastion and run dependent automation health checks. Expected: Only inventoried identities/keys remain, source restrictions are effective, and dependent jobs complete normally. Rollback: Re-enable only the previous documented credential/source rule for the affected integration, time-box it, and open an incident record. Authority: S01 · Virtualizor incident advisory, 2026-08-31.
  • Allowlist management-plane egress and monitor update destinations (CTRL04) — Route management-plane HTTP(S) and update traffic through a monitored egress control; allow only reviewed vendor destinations and required services, while logging denied and newly seen destinations. deployable-design Verify: Compare flow logs before/after and perform a read-only update check against the approved endpoint list. Expected: Only approved destinations are reached and required management functions remain healthy. Rollback: Restore the previous reviewed egress policy for the pilot segment and retain denied-flow evidence for tuning. Authority: S01 · Virtualizor incident advisory, 2026-08-31.
Strategic — remove the recurring trust failure
  • Require cryptographic provenance for privileged update channels (CTRL05) — Require suppliers to publish signed update metadata and documented verification; where the product lacks it, stage updates through a controlled repository with independently verified digests and block unattended direct-to-production retrieval. deployable-design Verify: Trace a test update from supplier metadata through staged artifact digest to installed version. Expected: Every privileged update has retained supplier provenance, independent digest verification, approval, and installed-version evidence. Rollback: Use the documented emergency-update exception with dual approval and retrospective verification; never bypass verification silently. Authority: S04 · NIST SP 800-161 Revision 1, 2022; accessed 2026-09-03.
  • Baseline and alert on privileged product-file and service drift (CTRL06) — Generate a known-good manifest for Virtualizor core files and critical host configuration; send change events and periodic digest attestations to an independent collector; alert on unapproved drift. deployable-design Verify: Perform one approved file change in a lab copy and confirm the independent collector records old/new digests and change identity. Expected: Approved changes are attributable and unexpected drift produces a reviewable event without modifying the source host. Rollback: Restore the prior signed manifest only after verifying the underlying approved change; disable noisy rules rather than integrity collection. Authority: S04 · NIST SP 800-161 Revision 1, 2022; accessed 2026-09-03.

Deployable playbook · Incident-window exposure and integrity review

  1. Record owners and every Virtualizor master/hypervisor before changing state.
  2. Export update history, analyzer output, running processes, services, users, SSH keys, connections, and product-file digests; hash the exports.
  3. Pilot the review on one non-production or already isolated node and compare against the published incident window and indicators.
  4. If corroborated compromise exists, invoke the incident commander and workload continuity plan before isolation or rebuild.
  5. Verify known-good image digests, current product version, approved identities, clean analyzer result, and workload health before re-entry.
  6. Expand only after evidence capture and recovery steps succeed; otherwise keep nodes isolated and correct the procedure.
  7. Rollback means restoring workloads to the last known-good platform, not returning a compromised host to service.
  8. Retain evidence hashes, rebuild records, approvals, and owner sign-off.

Deployable playbook · Management credential and egress restriction pilot

  1. Capture current API keys, SSH keys, accounts, source restrictions, egress rules, and dependency owners.
  2. Confirm a tested break-glass path and health checks for update, licensing, backup, and orchestration workflows.
  3. Pilot replacement credentials and egress allowlisting on one non-critical management group.
  4. Verify only approved identities and destinations remain while dependent jobs complete.
  5. Expand by management ring after 24 hours of successful health and denied-flow review.
  6. If a critical integration fails, restore only its prior documented credential or rule, time-box the exception, and investigate.
  7. Retain before/after exports, flow samples, job evidence, and approval records.
Design state: no control is canary-tested or deployed. Complete environment, dependency, continuity, and approval checks before execution.
11

Containment Runbook

PhaseTriggerAuthorityOwnerEvidenceRecovery
1 — Activate and preserveQ02/Q03 hit, matching payload hash/service, unauthorized key/account, or product-file integrity failureIncident commanderSOC and Linux forensicsRaw events, process tree, memory/process list, service files, payload hashes, connections, auth logs, update logs, product-file digestsNo destructive action until volatile evidence and continuity state are recorded
2 — Constrain management pathsCorroborated root persistence or interactive accessIncident commander plus virtualization ownerNetwork and virtualization teamsIsolation rule, active sessions, workload map, API/SSH key inventoryMaintain workload access through tested alternate management path; stop if customer continuity cannot be preserved
3 — Replace exposed trustEvidence capture complete and dependencies mappedIdentity and platform change controlIdentity, virtualization, and application ownersRevoked/reissued keys, token metadata, account changes, dependency healthRestore one documented integration credential only under time-boxed exception if a critical service fails
4 — Rebuild and restoreConfirmed root compromise or integrity cannot be establishedIncident commander and service ownerPlatform recovery teamKnown-good image digest, rebuild log, restored workload manifests, verification resultsReturn only rebuilt, verified hosts; keep failed nodes isolated and restore workloads elsewhere
5 — Close and re-huntAll nodes inventoried, trust replaced, recovery checks pass, and no new evidence appearsIncident commanderDetection engineering and platform owner14-day Q02-Q04 re-hunt, clean analyzer records, integrity attestations, exception closureReopen containment on any new correlated hit or unexplained drift

Continuity rule: preserve volatile evidence and verify alternate administration before isolation, reboot, credential replacement, device reload, or host rebuild.

12

Detection Coverage and Validation Evidence

Validation state: STATIC REVIEW PASSED after local structure/safety, maintained-field, CQL heuristic, provenance, and duplicate gates. This is not Falcon parsing, canary success, or deployment evidence.

TechniqueCoverageQuery / handoffEvidenceLimitation
T1195.002Designnative evidence handoffSource-backed behavior and non-CQL reviewNo portable endpoint query for this behavior
T1543.002StaticQ02Local static gatesTenant parsing and baseline absent
T1098.004Designnative evidence handoffSource-backed behavior and non-CQL reviewNo portable endpoint query for this behavior
T1136.001Designnative evidence handoffSource-backed behavior and non-CQL reviewNo portable endpoint query for this behavior
T1071StaticQ03Local static gatesTenant parsing and baseline absent
Telemetry gapGapH05Documented design handoffPortable endpoint schema for Linux account creation, SSH authentication, and authorized_keys writes is not assumed.
Telemetry gapGapH06Documented design handoffBGP path and Virtualizor update-package provenance require routing/application logs outside portable Falcon endpoint telemetry.

Recorded evidence

  • Every CQL card remains tenant-unverified and was not executed against Falcon.
  • The offline tenant-validation dry run checks extraction and profile readiness only; it does not contact a tenant.
  • IOC rows are bound to current hashed snapshots and require context before action.
  • Next step: run each query manually in a safe one-hour window, confirm fields and semantics, then expand to the documented lookback.
13

Hunt Summary Ticket

TITLE:        Virtualizor BGP-Hijacked Update Compromise hunt — v0.3 Draft
SEVERITY:     critical — privileged infrastructure or root trust may be compromised
SCOPE:        Softaculous Virtualizor hypervisor control panel and update channel; endpoint and independent infrastructure evidence
HYPOTHESIS:   H01 inventory; H02 hunt; H03 hunt; H04 hunt; H05 gap; H06 gap
QUERIES RUN:  Q01 inventory; Q02 hunt; Q03 hunt; Q04 hunt; no alert-candidate query
DO FIRST:     Run Q02 over 14 days on confirmed Virtualizor hosts, then correlate exact process evidence with the update window.
FINDINGS:
GAPS:         No portable Falcon event proves BGP diversion, TLS certificate issuance, or update-package provenance.; Linux user creation, SSH authentication, and authorized_keys changes require tenant-specific audit/auth ingestion.; File-write telemetry for PHP and service files is not assumed; integrity comparison is required.; IPv6 network coverage is not supplied because the published indicators are IPv4 and no documented IPv6 behavior exists.
ACTIONS:      preserve evidence; validate queries; assign platform, network, identity, and recovery owners
OWNER:        Incident Response / SOC / Infrastructure Platform / Network Security
VERSION:      v0.3 Draft · 2026-09-04 · STATIC REVIEW PASSED
14

Changelog

v0.3 Rich visual emphasis2026-09-04Added coordinated semantic color to Executive Summary lead-ins, threat metadata, Severity, and IOC counts. Detection logic, evidence, indicators, hardening, and validation claims are unchanged.
v0.2 Theme refresh2026-09-04Applied the deterministic threat-aware HuntPack palette. Detection logic, evidence, indicators, hardening, and validation claims are unchanged.
v0.1 Draft2026-09-03Initial pack with 4 conservative CQL queries, 2 explicit gaps, 4 sanitized sources, 5 source-bound IOCs, 6 reversible controls, two playbooks, and a five-phase containment workflow. Tenant execution is not claimed.
15

References

IDPublisherEdition/dateAccessedUseURL
S01Virtualizor / Softaculouscurrent cited edition2026-09-03T11:03:12ZIncident timeline, update weakness, and vendor indicatorshttps://www.virtualizor.com/blog/security-incident-bgp-hijacking/
S02AlbaHost operator statement via LowEndTalkcurrent cited edition2026-09-03T11:03:12ZFirst-hand host evidence and indicatorshttps://lowendtalk.com/discussion/220625/urgent-virtualizor-compromised-31st-aug/p2
S03RIPE NCCcurrent cited edition2026-09-03T11:03:12ZRouting-telemetry methodhttps://stat.ripe.net/docs/data-api/api-endpoints/bgp-state/
S04NISTcurrent cited edition2026-09-03T11:03:12ZSoftware-supply-chain integrity authorityhttps://csrc.nist.gov/pubs/sp/800/161/r1/final