{"id":4164,"date":"2026-11-11T07:08:49","date_gmt":"2026-11-11T15:08:49","guid":{"rendered":"https:\/\/cyber.mag212.com\/xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root\/"},"modified":"2026-11-11T07:08:49","modified_gmt":"2026-11-11T15:08:49","slug":"xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root","status":"publish","type":"post","link":"https:\/\/cyber.mag212.com\/fr\/xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root\/","title":{"rendered":"Xen Orchestra Auth Bypass (VSA-2026-062) Is Exploited: An Empty-Object Cookie Hands Over XCP-ng Hosts"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Xen Orchestra, the web console many MSPs, hosting providers and schools use to run XCP-ng virtualisation, has a critical authentication bypass that is already being exploited. Vates\u2019 advisory VSA-2026-062 explains that a crafted login cookie is parsed into an empty object that the token check accepts. From there an attacker is an Xen Orchestra administrator, can run code across pools and ends up as root on the hosts. There is no CVE yet, and Vates warns that successful exploitation leaves no log entry.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Advisory<\/strong><\/td><td>Vates VSA-2026-062 \u00b7 Critical<\/td><\/tr><tr><td><strong>Fixed<\/strong><\/td><td>XO 6.9.2 (stable) \u00b7 6.10.1 (latest)<\/td><\/tr><tr><td><strong>CVSS<\/strong><\/td><td>Not available yet<\/td><\/tr><tr><td><strong>Logs<\/strong><\/td><td>Exploitation leaves none<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What happened<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>[Confirmed]<\/strong> Vates rates VSA-2026-062, &#8220;Empty-object login token&#8221;, Critical and says it is being actively exploited by an actor operating initially from <code>91.211.251.112:8001<\/code> and an onion address. There is no CVE yet. (<a href=\"https:\/\/docs.vates.tech\/security-advisories\/advisories\/2026\/vates-sa-2026-062\" target=\"_blank\" rel=\"noopener\">Vates<\/a>) <strong>[Reported]<\/strong> Credited to Filip Magic and Christoffer Olsen (TDC NET Security); THN adds that VirusTotal flags that IP as a RedLine Stealer C2. A crafted cookie, <code>authenticationToken=j:%7B%7D<\/code>, is parsed into an empty object that the token provider accepts, giving XO admin, then code execution on pools and root on hosts. (<a href=\"https:\/\/thehackernews.com\/2026\/11\/hackers-exploit-critical-xen-orchestra.html\" target=\"_blank\" rel=\"noopener\">The Hacker News<\/a>) <strong>[Unknown]<\/strong> Start date and victim count.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"533\" src=\"https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram.jpg\" alt=\"Five-step chain: crafted authenticationToken cookie, parsed as empty object, XO admin, code execution on pools, root on hosts; green panel with fixed versions 6.9.2 and 6.10.1.\" class=\"wp-image-4163\" srcset=\"https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram.jpg 1600w, https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram-300x100.jpg 300w, https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram-1024x341.jpg 1024w, https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram-768x256.jpg 768w, https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram-1536x512.jpg 1536w, https:\/\/cyber.mag212.com\/wp-content\/uploads\/2026\/11\/03-xen-orchestra-vsa-2026-062-empty-object-token-exploited-xcp-ng-root-diagram-18x6.jpg 18w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-element-caption\"><strong>Figure 3 \u00b7 From an empty cookie to root on XCP-ng.<\/strong> The reported bypass mechanics, with the vendor&#8217;s fixed versions and response order. Exploitation leaves no logs. Diagram: MAG212 CYBER<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Who is affected<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Install type<\/th><th>Affected<\/th><th>Fixed (vendor)<\/th><\/tr><\/thead><tbody><tr><td>Xen Orchestra, stable channel<\/td><td>before 6.9.2<\/td><td><strong>XO 6.9.2<\/strong> (xo-server 5.211.2)<\/td><\/tr><tr><td>Xen Orchestra, latest channel<\/td><td>before 6.10.1<\/td><td><strong>XO 6.10.1<\/strong> (xo-server 5.213.1)<\/td><\/tr><tr><td>Xen Orchestra Appliance (XOA)<\/td><td>yes<\/td><td>update to the versions above<\/td><\/tr><tr><td>From-sources builds<\/td><td>yes<\/td><td>latest master (PR #10748)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Source: <a href=\"https:\/\/docs.vates.tech\/security-advisories\/advisories\/2026\/vates-sa-2026-062\" target=\"_blank\" rel=\"noopener\">Vates<\/a>. <strong>Conflict:<\/strong> THN gives 6.9.1 \/ 6.10.0 with the same xo-server versions; we use the vendor&#8217;s figures.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to look for (vendor IOCs)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Type<\/th><th>Indicator (all from Vates VSA-2026-062)<\/th><\/tr><\/thead><tbody><tr><td>Request pattern<\/td><td><code>authenticationToken=j:%7B%7D<\/code> or <code>j:{}<\/code><\/td><\/tr><tr><td>Host artifacts<\/td><td>a VM named <code>pivot2<\/code>; VMs with <code>hvm_serial: file<\/code><\/td><\/tr><tr><td>Files<\/td><td><code>\/etc\/cron.d\/zz-ustar2<\/code>, <code>\/etc\/cron.d\/zz-ustar<\/code>, <code>\/.ustar5<\/code>, <code>\/.ustar6<\/code><\/td><\/tr><tr><td>IPs to block<\/td><td><code>91.211.251.112<\/code> <code>193.148.56.72<\/code> <code>37.221.208.216<\/code> <code>45.66.35.11<\/code> <code>64.65.0.120<\/code> <code>64.65.62.160<\/code> <code>89.47.51.90<\/code> <code>92.60.37.247<\/code><\/td><\/tr><tr><td>Onion C2<\/td><td><code>ustar3rqxgnskzgnwkgpofgtvxevm6cx3lxdbwt4mndtveqyaohid.onion:3333<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>Vendor caveat:<\/strong> successful exploitation leaves no log entry, and finding no IOCs does not prove a host is clean. <a href=\"https:\/\/docs.vates.tech\/security-advisories\/advisories\/2026\/vates-sa-2026-062\" target=\"_blank\" rel=\"noopener\">Vates<\/a><\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Host checks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><em>OS: XCP-ng (dom0) \u00b7 Shell: bash \u00b7 Privileges: root (MAG212 analysis; vendor doesn&#x27;t state) \u00b7 READ-ONLY<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># VMs whose platform settings include a file-backed serial port (IOC: hvm_serial: file)\nxe vm-list params=name-label,platform | grep -B1 &#x27;hvm_serial: file&#x27;\n# Search current and rotated xensource logs for file-backed serial configuration\nzgrep -- &#x27;-serial file:&#x27; \/var\/log\/xensource.log*\n# Preload hijack and the published persistence files\nls -la \/etc\/ld.so.preload \/.ustar* \/etc\/cron.d\/zz-ustar*<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Run on every XCP-ng host. Any output naming the IOCs above is a hit; &#8220;No such file&#8221; for the last command is the expected clean result. <strong>Commands not tested by MAG212 CYBER<\/strong>; copied from the <a href=\"https:\/\/docs.vates.tech\/security-advisories\/advisories\/2026\/vates-sa-2026-062\" target=\"_blank\" rel=\"noopener\">Vates advisory<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contain and remediate (in order, per Vates)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Take XO off the internet<\/strong> onto a dedicated management network; block the IPs and onion address.<\/li>\n\n\n<li><strong>Upgrade<\/strong> to XO 6.9.2 or 6.10.1 (xo-server 5.211.2 \/ 5.213.1); from-sources builds to latest master.<\/li>\n\n\n<li>Optional interim WAF or reverse-proxy rule for the token patterns; Vates warns regex rules can be bypassed.<\/li>\n\n\n<li><strong>Run the host checks<\/strong> above on every host.<\/li>\n\n\n<li><strong>If compromised:<\/strong> rotate all secrets (proxy, backup remotes, root, pool secret, users, OTP, mail) and fully reinstall. (<a href=\"https:\/\/docs.vates.tech\/security-advisories\/advisories\/2026\/vates-sa-2026-062\" target=\"_blank\" rel=\"noopener\">Vates<\/a>)<\/li>\n\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verify recovery:<\/strong> confirm the XO version, that the interface is unreachable from untrusted networks, re-run the checks, and confirm rotated secrets are in use. <strong>[MAG212 analysis]<\/strong> With no logs, reinstalling is the only high-confidence recovery for a host with any hit. Virtualisation control planes belong on an isolated network, especially for MSPs and schools that chose XCP-ng to save cost.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why it matters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A virtualisation control plane is a master key: whoever holds it can snapshot, copy, modify or destroy every virtual machine it manages. Organisations that chose XCP-ng to save licence costs often run lean IT teams that publish the console for convenience. Because exploitation is silent, a clean log review proves nothing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The bottom line<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Take Xen Orchestra off the internet now, upgrade to 6.9.2 or 6.10.1, run the vendor\u2019s host checks on every XCP-ng host, and if anything matches, rotate every secret and rebuild rather than clean.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>How we label evidence: <strong>[Confirmed]<\/strong> comes from a primary source such as a vendor or CISA; <strong>[Reported]<\/strong> from a secondary outlet; <strong>[Claimed]<\/strong> from an attacker or an unverified party; <strong>[MAG212 analysis]<\/strong> is our judgement; <strong>[Unknown]<\/strong> means not established at press time. Commands and indicators are copied from the cited sources and were not tested by MAG212 CYBER.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">This story is part of <a href=\"https:\/\/cyber.mag212.com\/mag212-cyber-daily-2026-11-11-barracuda-outlook-xen-orchestra-fortinet\/\">MAG212 CYBER Daily, 11 November 2026<\/a>, with the day\u2019s other verified stories, the Defender\u2019s Action Desk and a full source register. Get the daily briefing free: <a href=\"https:\/\/cyber.mag212.com\/subscribe-free\/\">subscribe to MAG212 CYBER<\/a>. By El Mostafa Ouchen.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Vates warns that a critical Xen Orchestra flaw is being actively exploited: a crafted cookie parsed as an empty object passes authentication, giving admin control, code execution on pools and root on XCP-ng hosts. Fixed versions, vendor IOCs, host checks and why reinstalling may be the only safe recovery.<\/p>","protected":false},"author":1,"featured_media":4162,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,15,14],"tags":[308,263,307,306,305],"class_list":["post-4164","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-critical-cves","category-threat-intelligence","category-vulnerabilities","tag-authentication-bypass","tag-iocs","tag-virtualization","tag-xcp-ng","tag-xen-orchestra"],"_links":{"self":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts\/4164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/comments?post=4164"}],"version-history":[{"count":0,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/posts\/4164\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/media\/4162"}],"wp:attachment":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/media?parent=4164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/categories?post=4164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/tags?post=4164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}