MOKSHA-2026-0012: OVS Fail-Mode Denial of Service via Network.other_config

Advisory IDMOKSHA-2026-0012
Semantic IDNOC-2
Published2026-04-24
CVSS 3.18.2 High
CVSS 3.1 VectorAV:N/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H
CVSS 4.08.2 High
CVSS 4.0 VectorAV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
XAPI ObjectNetwork
XAPI Fieldother_config:vswitch-controller-fail-mode
Entry Rolepool-operator
ResearcherJakob Wolffhechel, Moksha

Affected Products

VendorProductVersions
Citrix / Cloud Software GroupXenServer / Citrix Hypervisorall versions (shared XAPI codebase)
VatesXCP-ng8.3.0

Summary

A pool-operator can cause a complete network denial of service on any OVS bridge by setting Network.other_config:vswitch-controller-fail-mode to "secure". In secure fail mode, OVS drops ALL packets when the SDN controller is unreachable. In the common case where no SDN controller is configured - which is the default for most XAPI deployments - this immediately drops all traffic on the bridge, affecting every VM and management connection on that network. The key has no map_keys_roles protection and requires a single API call with no validation.

Vulnerability Description

Network.other_config is a Map(String, String) field writable by pool-operator. The vswitch-controller-fail-mode key controls how Open vSwitch handles the absence of an SDN controller. The value flows through XAPI via the openvswitch-config-update script to the OVS bridge configuration.

Data Flow

pool-operator calls Network.add_to_other_config(net, "vswitch-controller-fail-mode", "secure")
  -> openvswitch-config-update reads Network.other_config
  -> ovs-vsctl set-fail-mode <bridge> secure
  -> OVS enters secure fail mode
  -> No SDN controller configured (common case) -> ALL packets dropped
  -> Complete network outage for all VMs and host management on the bridge

OVS supports two fail modes:

In the common deployment scenario where no SDN controller exists, setting secure causes immediate and complete traffic loss on the bridge.

Root Causes

  1. Missing RBAC protection. Network.other_config has zero map_keys_roles entries for infrastructure keys. The vswitch-controller-fail-mode key is writable by pool-operator.

  2. Missing pre-condition validation. No check verifies that an SDN controller is actually configured before allowing secure fail mode. Setting secure without a controller is always destructive.

  3. Immediate effect. The configuration change takes effect immediately on the OVS bridge - no confirmation, no grace period, no rollback mechanism.

Affected Systems

Directly Affected

Indirectly Affected

Exploitation Scenarios

Scenario Impact Pre-conditions Status
Per-network DoS All traffic dropped on targeted bridge OVS bridge, no SDN controller Modeled (code-traced, OVS behavior confirmed)
Management network DoS Host becomes unreachable Management traffic on OVS bridge Modeled
Storage network DoS All VM I/O stops Storage traffic on OVS bridge Modeled
BOC-1 chain vm-admin escalates to pool-operator via BOC-1 S3, then triggers OVS DoS BOC-1 available Modeled (two-step chain)

Detection

Remediation

Short-Term Mitigations

Long-Term Fix

RBAC restriction. Add map_keys_roles entry for vswitch-controller-fail-mode in datamodel.ml requiring _R_POOL_ADMIN.

Pre-condition validation. Before accepting secure fail mode, validate that an SDN controller is configured and reachable. Reject secure when no controller exists.

Upstream patches exist. They are held privately pending coordinated disclosure.

Disclosure

Disclosure:

References

Credits

Discovered and reported by Jakob Wolffhechel, Moksha.

Jakob Wolffhechel · Moksha · Copenhagen
jakob@wolffhechel.dk · +45 3170 7337
Published 2026-04-24 08:00 CEST · cna.moksha.dk · shittrix.moksha.dk