A critical authentication bypass vulnerability in Xen Orchestra—the web-based management interface for XCP-ng and Citrix Hypervisor (formerly XenServer)—is being actively exploited in the wild. Tracked as CVE-2024-55555 and carrying a CVSSv3.1 score of 9.8 (Critical), this flaw allows unauthenticated remote attackers to bypass login mechanisms entirely, obtain administrative privileges, and subsequently seize control of underlying virtualization hosts.
For organizations running virtualized infrastructure on XCP-ng, this represents a worst-case scenario. Xen Orchestra typically holds privileged credentials for hypervisor management, VM lifecycle operations, and storage configuration. Compromise of the Orchestra console effectively hands attackers the keys to the kingdom: they can snapshot sensitive VMs, exfiltrate virtual disks, deploy ransomware across entire clusters, or pivot into guest operating systems.
The vulnerability is under active exploitation, with reports indicating automated scanning and compromise attempts targeting internet-exposed Xen Orchestra instances. If your organization utilizes XCP-ng with Xen Orchestra—whether the open-source virtual appliance or Xen Orchestra Appliance (XOA)—immediate remediation is required.
Technical Analysis
Affected Products and Versions
The vulnerability affects Xen Orchestra installations running versions 5.95.0 through 5.98.0 (stable channel) and corresponding builds in the latest channel. Both the community-built Xen Orchestra (from sources) and the commercial Xen Orchestra Appliance (XOA) are impacted. The vulnerability specifically resides in the XO-server component, which handles REST API requests and WebSocket connections for management operations.
XCP-ng versions 8.2 and 8.3 are commonly managed via Xen Orchestra, though the vulnerability exists in the Orchestra layer rather than the hypervisor itself. Any XCP-ng or Citrix Hypervisor host managed by a vulnerable Orchestra instance is at risk of indirect compromise.
Vulnerability Mechanics
CVE-2024-55555 is an authentication bypass via improper request validation in the XO-server API layer. The flaw exists in how the server processes JSON-RPC requests and validates session tokens. By crafting specific malformed requests to the /api/ endpoint or the WebSocket upgrade handler, attackers can trick the application into treating unauthenticated sessions as authenticated administrative users.
The attack chain typically unfolds as follows:
- Reconnaissance: Attackers scan for TCP port 443 (or 80) with the characteristic HTTP response headers associated with Xen Orchestra (typically
Server: XO-Serveror distinctive cookie patterns). - Exploitation: Malformed HTTP POST requests or WebSocket frames are sent to the vulnerable endpoint, bypassing the authentication middleware.
- Privilege Escalation: Once inside, the attacker operates with the privileges of the XO service account (often root or sudo-capable on the Orchestra VM) and gains administrative access to the web console.
- Lateral Movement: Using the legitimate XO credentials or API tokens stored in the application, attackers connect to managed XCP-ng hosts via SSH or the XAPI toolstack.
- Impact: Full control over VM lifecycle operations—including creation, deletion, snapshot export, and VDI (Virtual Disk Image) exfiltration.
Exploitation Status
- Active Exploitation: Confirmed in-the-wild exploitation observed by multiple threat intelligence sources.
- PoC Availability: Proof-of-concept code is circulating in private channels and has been integrated into automated exploitation frameworks.
- CISA KEV: This vulnerability has been added to the CISA Known Exploited Vulnerabilities (KEV) catalog with a remediation deadline of 2026-03-15 for federal agencies.
- Internet Exposure: Shodan and Censys scans indicate thousands of internet-exposed Xen Orchestra instances, primarily on ports 443 and 80.
Detection & Response
Sigma Rules
---
title: Xen Orchestra Exploitation - Suspicious Child Process
id: 8f7e2a1b-3c4d-5e6f-7a8b-9c0d1e2f3a4b
status: experimental
description: Detects suspicious child processes spawned by the XO-server process, which may indicate post-exploitation activity following CVE-2024-55555 compromise.
references:
- https://xen-orchestra.com/docs/security.html
- https://www.bleepingcomputer.com/news/security/critical-xen-orchestra-auth-bypass-flaw-exploited-to-hijack-vm-servers/
author: Security Arsenal
date: 2026/02/15
tags:
- attack.execution
- attack.t1059
- attack.privilege_escalation
logsource:
product: linux
category: process_creation
detection:
selection:
ParentImage|contains:
- 'xo-server'
- 'node'
Image|endswith:
- '/bash'
- '/sh'
- '/python'
- '/perl'
- '/curl'
- '/wget'
- '/nc'
- '/netcat'
condition: selection
falsepositives:
- Legitimate administrative scripts executed via XO plugins
- Backup scripts initiated by the XO scheduler
level: high
---
title: Xen Orchestra Authentication Bypass Attempt - Web Logs
id: 9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects potential exploitation attempts against Xen Orchestra API endpoints by identifying suspicious patterns in web access logs indicative of CVE-2024-55555.
references:
- https://attack.mitre.org/techniques/T1190/
- https://www.bleepingcomputer.com/news/security/critical-xen-orchestra-auth-bypass-flaw-exploited-to-hijack-vm-servers/
author: Security Arsenal
date: 2026/02/15
tags:
- attack.initial_access
- attack.t1190
logsource:
category: webserver
detection:
selection:
cs-method: 'POST'
cs-uri|contains:
- '/api/'
- '/jsonrpc'
cs-user-agent|contains:
- 'python-requests'
- 'curl'
- 'wget'
- 'Go-http-client'
- 'masscan'
- 'zgrab'
condition: selection
falsepositives:
- Legitimate API automation using Python or curl
- Health checks from load balancers
level: medium
---
title: Xen Orchestra Unauthorized Administrative Session
id: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects successful administrative logins from unusual source IPs or without corresponding authentication events, potentially indicating session hijacking or auth bypass.
references:
- https://attack.mitre.org/techniques/T1078/
author: Security Arsenal
date: 2026/02/15
tags:
- attack.persistence
- attack.t1078
logsource:
category: webserver
detection:
selection:
cs-uri|contains:
- '/api/session'
- '/api/user'
sc-status: '200'
cs-method:
- 'POST'
- 'GET'
condition: selection
falsepositives:
- Legitimate admin access
- API token usage
level: medium
Microsoft Sentinel / Defender KQL
// Hunt for potential Xen Orchestra exploitation via suspicious network connections to XO servers
// This query assumes Syslog or CEF ingestion from network devices or the XO host itself
CommonSecurityLog
| where TimeGenerated > ago(7d)
| where DestinationPort in (443, 80)
| where DeviceProduct contains "Xen Orchestra" or RequestURL contains "/api/"
| where RequestMethod == "POST"
| where RequestURL has_any ("/api/session", "/jsonrpc", "/api/v1")
| where SourceIP !in ("10.0.0.0/8", "192.168.0.0/16") // Adjust for legitimate internal admin ranges
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, RequestURL, RequestMethod, DeviceAction
| sort by TimeGenerated desc;
// Hunt for suspicious process execution on Linux hosts running XO-server
Syslog
| where TimeGenerated > ago(24h)
| where Facility == "auth" or Facility == "user"
| where ProcessName contains "xo-server" or ProcessName contains "node"
| where SyslogMessage has_any ("/bin/bash", "/bin/sh", "curl", "wget", "nc ", "python")
| where SyslogMessage !has_any ("backup", "export", "scheduled")
| project TimeGenerated, Computer, ProcessName, SyslogMessage, SeverityLevel;
// Correlate web access logs with authentication bypass patterns
// Assumes ingestion of Apache/Nginx logs or XO application logs
CommonSecurityLog
| where TimeGenerated > ago(48h)
| where RequestURL contains "/api/"
| where RequestMethod == "POST"
| where ResponseCode == "200"
| extend JsonPayload = tostring(AdditionalExtensions)
| where JsonPayload has_any ("admin", "token", "session") or RequestURL has "session"
| summarize Count = count() by SourceIP, bin(TimeGenerated, 1h)
| where Count > 10; // Potential brute force or automated exploitation
Velociraptor VQL
-- Hunt for suspicious processes spawned by Xen Orchestra (node/xo-server)
-- or evidence of webshells/backdoors in XO web directories
-- Query 1: Process tree analysis for XO-server
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ 'node|xo-server'
OR CommandLine =~ 'xo-server'
OR ParentPid IN (
SELECT Pid FROM pslist() WHERE Name =~ 'node|xo-server'
)
-- Query 2: Check for suspicious network connections from XO process
SELECT Pid, Name, LocalAddr, LocalPort, RemoteAddr, RemotePort, State
FROM netstat()
WHERE Name =~ 'node|xo-server'
AND RemotePort !~ '443|80' // XO typically talks to XCP-ng on 443, look for anomalies
AND State =~ 'ESTABLISHED'
-- Query 3: Hunt for recently modified files in XO web directories (webshells)
SELECT FullPath, Size, Mtime, Ctime
FROM glob(globs='/opt/xen-orchestra/**/*.js')
WHERE Mtime > ago(24h)
AND Size < 100000 // Look for small webshells vs large app files
ORDER BY Mtime DESC
Remediation Script
#!/bin/bash
# Xen Orchestra CVE-2024-55555 Emergency Remediation Script
# Run on the Xen Orchestra appliance/host
# This script updates XO to the latest patched version and restarts services
set -euo pipefail
echo "[$(date)] Starting Xen Orchestra emergency patch for CVE-2024-55555..."
# Check if running as root or with sudo
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root or with sudo"
exit 1
fi
# Backup current configuration
echo "[$(date)] Backing up XO configuration..."
if [ -d "/opt/xen-orchestra" ]; then
tar -czf /root/xo-backup-$(date +%Y%m%d).tar.gz -C /opt xen-orchestra/.config 2>/dev/null || true
fi
# Method 1: For Xen Orchestra Appliance (XOA)
if command -v xoa-updater &> /dev/null; then
echo "[$(date)] XOA detected. Running update..."
xoa-updater --upgrade
systemctl restart xo-server
echo "[$(date)] XOA update completed."
# Verify version
if command -v xo-server &> /dev/null; then
xo-server --version
fi
exit 0
fi
# Method 2: For source-built Xen Orchestra (typical /opt installation)
if [ -d "/opt/xen-orchestra" ]; then
echo "[$(date)] Source installation detected at /opt/xen-orchestra..."
cd /opt/xen-orchestra
# Stash any local changes
git stash 2>/dev/null || true
# Pull latest stable (or specific patch commit if available)
git checkout master
git pull origin master
# If using latest channel, use: git checkout latest && git pull
# Rebuild
echo "[$(date)] Rebuilding XO..."
yarn install --frozen-lockfile
yarn build
# Restart service
systemctl restart xo-server || pm2 restart xo-server || supervisorctl restart xo-server
echo "[$(date)] Xen Orchestra updated. Verify functionality immediately."
# Check service status
systemctl status xo-server --no-pager -l || pm2 status || true
else
echo "[$(date)] ERROR: Could not locate Xen Orchestra installation."
echo "Please manually update to version 5.98.1 or later immediately."
exit 1
fi
# Verify patch level
echo "[$(date)] Verifying XO version..."
curl -s http://localhost:8080/api/version | grep -o '"version":"[^"]*"' || echo "Could not query version"
# Hardening: Check for suspicious users
echo "[$(date)] Checking for suspicious administrative users..."
if [ -f "/opt/xen-orchestra/packages/xo-server/.config.json" ]; then
grep -i "password\|token\|apikey" /opt/xen-orchestra/packages/xo-server/.config.json | head -5 || true
fi
echo "[$(date)] Remediation complete. Review logs at /var/log/xo-server.log for suspicious activity."
Remediation
Immediate Actions (Within 24 Hours)
-
Isolate from Internet: If your Xen Orchestra instance is directly exposed to the internet, restrict access immediately using firewall rules or VPN requirements. The management interface should never be publicly accessible.
-
Update Immediately: Upgrade to Xen Orchestra 5.98.1 or later. The Vates team has released patches for both the stable and latest release channels.
- XOA Users: Run
xoa-updater --upgradefrom the XOA CLI or use the web updater in Settings → Update. - Source Installations: Pull the latest commits from the
masterorlatestbranches and rebuild (yarn && yarn build).
- XOA Users: Run
-
Restart Services: After updating, restart the xo-server service to ensure all components are running the patched code.
Verification Steps
Verify your installation is patched by checking the version:
# Check via CLI
xo-server --version
# Or query the API
curl -k https://<xo-host>/api/version
Ensure the version is 5.98.1 or higher. If you are running 5.95.0 through 5.98.0, assume compromise and proceed to incident response.
Post-Compromise Investigation (If Breach Suspected)
If you observe signs of exploitation (unexpected admin users, unauthorized VM operations, suspicious processes):
-
Credential Rotation: Immediately rotate all credentials:
- XO admin passwords
- XCP-ng host root passwords
- Any API tokens or SSH keys stored in XO
- SMB/NFS credentials for remote storage
-
Log Analysis: Review
/var/log/xo-server.log(or/var/log/syslogfor XOA) for:- Successful logins from unfamiliar IPs
- Session creation without corresponding authentication
- API calls to
VM.start,VM.copy,VDI.exportoutside maintenance windows
-
Host Integrity: Check XCP-ng hosts for unauthorized SSH keys in
/root/.ssh/authorized_keysand unexpected user accounts. -
Snapshot Review: Audit recent VM snapshots and exports. Attackers often use legitimate backup/export functions to exfiltrate data.
Long-term Hardening
- Network Segmentation: Place Xen Orchestra on a dedicated management VLAN, accessible only from jump hosts or via VPN.
- MFA Enforcement: Enable multi-factor authentication for all XO administrative accounts.
- Least Privilege: Run XO-server as a non-root user. Use dedicated service accounts for XCP-ng host connections with minimal required permissions.
- API Rate Limiting: Implement rate limiting on
/api/endpoints to slow brute-force and exploitation attempts. - Audit Logging: Enable verbose audit logging in XO and forward logs to a SIEM for correlation.
Vendor References
- Xen Orchestra Security Advisory: https://xen-orchestra.com/docs/security.html
- GitHub Repository: Monitor https://github.com/vatesfr/xen-orchestra for security releases
- CISA KEV: Confirm inclusion status and remediation deadlines at https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.