CVE-2026-44963: Remote Code Execution in Veeam Backup & Replication via .NET Remoting ObjRef Deserialization
HERMES THREAT SCORE & ENTERPRISE RISK
Target:Veeam Backup & Replication - VeeamThreatHunterSvc (.NET Remoting TCP 6175) CVSS v3.1 rates CVE-2026-44963 at 9.8 (Critical) while CVSS v4.0 evaluates it at 9.3. Hermes Threat Score assesses it at 96 (CRITICAL). In an enterprise Windows Active Directory environment, the vulnerability converts any compromised low-privileged domain user into unconstrained NT AUTHORITY\SYSTEM code execution on the organization's backup server. Compromising the backup recovery plane is historically the final prerequisite for catastrophic enterprise ransomware deployment (e.g., Akira, Qilin, Fog, LockBit).
CVE-2026-44963: Remote Code Execution in Veeam Backup & Replication via .NET Remoting ObjRef DeserializationVULNERABILITY
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Why is this related? (Evidence & Provenance)
“Confirmed security vulnerability in Veeam Backup & Replication documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source: Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Reliability: VERY_HIGH)
1. Vulnerability Metadata & Affected Surface
Section titled “1. Vulnerability Metadata & Affected Surface”The following matrix provides an exhaustive scope analysis across affected software builds, architectural components, and authentication boundary assumptions.
| Parameter | Technical Specification | Operational Impact |
|---|---|---|
| CVE Identifier | CVE-2026-44963 | Global tracking identifier |
| Vendor Advisory | Veeam KB4869 | Hotfix and release bundle |
| Vulnerable Daemon | VeeamThreatHunterSvc.exe | Veeam Backup Threat Hunter Service |
| Transport Layer | Raw TCP on port 6175/TCP | Custom binary .NET Remoting channel |
| Vulnerable Pipeline | .NET Remoting Deserialization Sink | Whitelist filter bypassed via ObjRef proxy invocation |
| Execution Privileges | NT AUTHORITY\SYSTEM | Absolute host compromise |
| Affected Builds | VBR 12.0 (Build 12.0.0.1420) through 12.3.2.4465 | Default deployment on domain-joined hosts |
| Patched Build | VBR 12.3.2.4854 (KB4869) | Binary patch modifying remoting validation |
| Immune Architecture | VBR v13 (Build 13.0.1.2067 and newer) | Modernized to .NET 8 / Kestrel; Remoting completely deleted |
| Domain Precondition | Host joined to an Active Directory domain | BUILTIN\Users includes NT AUTHORITY\Authenticated Users |
The Authentication Fallacy: Why It Is Functionally Unauthenticated
Section titled “The Authentication Fallacy: Why It Is Functionally Unauthenticated”While Veeam’s advisory notes that the attacker must possess network connectivity and domain credentials, in modern enterprise architectures, this vulnerability must be treated as effectively unauthenticated RCE for the following reasons:
- Active Directory Token Expansion: The service’s authorization routine verifies
new WindowsPrincipal(windowsIdentity).IsInRole(WindowsBuiltInRole.User). On any Windows server joined to an Active Directory domain, the local groupBUILTIN\Usersautomatically and recursively includes the Active Directory principalNT AUTHORITY\Authenticated Users. - Ubiquitous Domain Footholds: Any domain account—regardless of how restricted (e.g., machine accounts, unprivileged contractor accounts, guest accounts without tier segregation)—passes this check immediately over NTLM or Kerberos negotiation on port 6175.
- Machine Account Abuse: Attackers who compromise any low-tier workstation or IoT device joined to the domain can utilize its computer account (
DOMAIN\WORKSTATION$) to negotiate NTLM, satisfying the authorization gate with zero human credential theft.
The Privileged Recovery Control Plane
Section titled “The Privileged Recovery Control Plane”As highlighted in Penligent’s technical research, backup infrastructure cannot be evaluated as an ordinary application server. A backup platform is a privileged recovery control plane:
- It maintains administrative credentials to hypervisors (VMware vCenter, ESXi, Hyper-V, Nutanix).
- It stores cataloged metadata and decryption keys for the organization’s entire data estate.
- It interfaces with storage arrays, cloud object storage repositories, and tape libraries.
Historically, ransomware syndicates (including Akira, Fog, Frag, and LockBit) deliberately hunt for Veeam Backup & Replication infrastructure. Gaining NT AUTHORITY\SYSTEM access allows attackers to purge restore points, encrypt backup repositories, exfiltrate virtual disk snapshots, and eliminate recovery options prior to deploying ransomware network-wide.
2. In-Depth Root Cause Technical Analysis
Section titled “2. In-Depth Root Cause Technical Analysis”To understand how a defense-in-depth allowlist of 4,200 types was circumvented, one must analyze the inner workings of legacy .NET Remoting, custom transport sinks, and the dual-legged nature of RPC request-response deserialization.
+-----------------------------------------------------------------------------------------+| CVE-2026-44963 DUAL-LEG EXPLOIT MECHANICS |+-----------------------------------------------------------------------------------------+
[Attacker Machine] [Veeam Backup Server] IP: 192.168.1.100 IP: 192.168.1.10 Port: TCP 6175 (VeeamThreatHunterSvc) │ │ [1] │───── TCP Connect & NTLM Auth (Any Domain Account) ───────────>│ (Passes IsInRole: BUILTIN\Users) │ │ [2] │───── Serialized Remoting Packet with ObjRef ─────────────────>│ Deserializes ObjRef (In Whitelist!) │ (Points to tcp://192.168.1.100:9999/pwn) │ Instantiates TransparentProxy │ │ │ │ Service executes: │ │ EnsureAccessIsAllowed() │ │ Reads msg.MethodBase property │ │ [3] │<════ Outbound TCP Callback to Attacker:9999 ══════════════════│ TransparentProxy triggers RPC │ "Get property MethodBase on remote object" │ │ │ [4] │═════ Malicious Reply Leg: SortedSet + TypeConfuseDelegate ═══>│ _serializingResponse == true: │ Gadget executes: Process.Start("cmd.exe", ...) │ Custom Whitelist Bypassed! │ │ │ │ [!] NT AUTHORITY\SYSTEM ShellFlaw 1: The Authorization Gate Illusion
Section titled “Flaw 1: The Authorization Gate Illusion”The network entrypoint of VeeamThreatHunterSvc.exe binds to 0.0.0.0:6175 via a TcpServerChannel. Upon receiving an incoming remoting request, the service inspects the client’s authenticated Windows identity:
// Decompiled from Veeam.Backup.ThreatHunter.Service.dllprivate bool ValidateClientIdentity(IIdentity identity){ WindowsIdentity windowsIdentity = identity as WindowsIdentity; if (windowsIdentity == null) return false;
WindowsPrincipal principal = new WindowsPrincipal(windowsIdentity); // VULNERABILITY: Checks local BUILTIN\Users role if (principal.IsInRole(WindowsBuiltInRole.User)) { return true; } return false;}Because domain membership injects DOMAIN\Domain Users into BUILTIN\Users, this gate fails to establish an isolation boundary. Every authenticated entity in the Active Directory forest is granted authorization to invoke the service’s remoting sinks.
Flaw 2: The ObjRef Allowlist Paradox
Section titled “Flaw 2: The ObjRef Allowlist Paradox”In response to historical deserialization vulnerabilities (such as CVE-2024-40711 and CVE-2023-38548), Veeam engineers implemented a custom remoting channel sink provider that enforced an allowlist of approved types loaded from a file named whitelist.txt. This list contained approximately 4,200 classes permitted to be deserialized by the BinaryFormatter.
Standard gadget chains (e.g., TypeConfuseDelegate, ObjectDataProvider, FileSystemUtils) were absent from whitelist.txt and were blocked by the sink. However, the allowlist explicitly included:
System.Runtime.Remoting.ObjRefIn .NET Remoting, an ObjRef is an architectural object storing all the metadata required to generate a remote proxy for an object living in another application domain or across the network. When BinaryFormatter deserializes an ObjRef, it automatically creates a System.Runtime.Remoting.Proxies.TransparentProxy acting on behalf of the specified URI.
Furthermore, by sending raw binary frames directly into the remoting transport sink rather than through standard high-level client stubs, the attacker bypasses .NET’s TypeFilterLevel.Low restrictions because .NET marks the internal remoting context flag IsRemoting = false during direct stream ingestion.
Flaw 3: The Reverse Trigger (“Asking the Attacker for Permission”)
Section titled “Flaw 3: The Reverse Trigger (“Asking the Attacker for Permission”)”Once the deserialization sink finishes reconstructing the message parameters, the Veeam service executes its internal access validation check: EnsureAccessIsAllowed(...).
// Simplified representation of Veeam access control routinepublic void EnsureAccessIsAllowed(IMethodCallMessage msg){ // The server reads the method name or target interface metadata MethodBase method = msg.MethodBase; string methodName = method.Name;
// Check against authorized operation contracts...}Here lies the fatal architectural flaw: the object within msg is not a local object—it is the deserialized TransparentProxy pointing to tcp://attacker-ip:9999/remote-object.
When the Veeam server code reads msg.MethodBase, the .NET Remoting CLR infrastructure intercepts the property getter. Because it is a proxy, the runtime pauses execution and dispatches an outbound TCP remoting call back to the attacker’s server to retrieve the requested metadata!
Flaw 4: The Unchecked Reply Leg
Section titled “Flaw 4: The Unchecked Reply Leg”When the attacker’s listener receives the incoming TCP connection from the Veeam server, it responds to the property query.
Inside Veeam’s custom security sink, the filtering logic is gated by an internal state flag:
if (!_serializingResponse){ // Apply strict whitelist validation on incoming requests EnforceTypeWhitelist(deserializedObject);}else{ // Responses are assumed to originate from trusted internal components PassThrough();}Because the Veeam server is acting as the client in this outbound transaction, the incoming packet from the attacker is categorized as a response/reply leg. The allowlist validation is completely skipped!
The attacker transmits a classic, uninhibited .NET deserialization gadget chain:
SortedSet<string>combined with a customIComparerComparisonComparer<string>wrapping aMulticastDelegateTypeConfuseDelegatelinking toSystem.Diagnostics.Process.Start("cmd.exe", "/c ...")
As soon as the Veeam server deserializes the response stream, Process.Start is invoked within the context of VeeamThreatHunterSvc.exe, spawning the attacker’s process with full NT AUTHORITY\SYSTEM integrity.
3. Step-by-Step Attack Sequence
Section titled “3. Step-by-Step Attack Sequence”- Network discovery & target profiling: The adversary discovers an accessible Veeam Backup & Replication server listening on TCP port 6175.
- NTLM / Kerberos handshake:
The attacker initiates a .NET Remoting TCP channel connection, presenting valid NTLM credentials for any low-privileged domain user or compromised machine account (
WORKSTATION$). - Payload construction & injection:
The attacker crafts a binary remoting request containing an allowlisted
System.Runtime.Remoting.ObjRefpointing to an attacker-controlled listener attcp://192.168.1.100:9999/Service. - Proxy instantiation & outbound callback:
VeeamThreatHunterSvc.exedeserializes theObjRef, producing aTransparentProxy. The server entersEnsureAccessIsAllowedand queriesmsg.MethodBase. The CLR automatically opens an outbound TCP connection to the attacker’s listener at192.168.1.100:9999. - Malicious reply leg delivery:
The attacker’s listener captures the connection and returns a serialized
SortedSet<string>gadget containingTypeConfuseDelegateconfigured to invoke arbitrary operating system commands. - Code execution as SYSTEM:
The Veeam server deserializes the reply without allowlist validation.
Process.Startexecutes, yielding an interactive shell or dropping a persistent implant withNT AUTHORITY\SYSTEMprivileges.
4. Asset Discovery & Exposure Management (runZero Research)
Section titled “4. Asset Discovery & Exposure Management (runZero Research)”As documented in runZero’s exposure management research, security teams cannot protect what they cannot discover. In enterprise environments, secondary backup proxies, test instances, and decentralized Veeam deployments often sit unnoticed on general subnets.
4.1 runZero Software Inventory Queries
Section titled “4.1 runZero Software Inventory Queries”To locate all deployed Veeam instances across the enterprise:
# Query 1: Discover all Veeam Backup & Replication instancesvendor:=Veeam AND (product:="Backup & Replication" OR product:="Veeam Backup & Replication")
# Query 2: Pinpoint specifically vulnerable versions (v12 prior to 12.3.2.4854)vendor:=Veeam AND product:="Veeam Backup & Replication" AND (version:>0 AND version:>=12 AND version:<12.3.2.4854)4.2 Network Service Discovery & Port Fingerprinting
Section titled “4.2 Network Service Discovery & Port Fingerprinting”Defenders can detect unmanaged Veeam services using network-level service queries:
# Discover Veeam Service Provider Console (VSPC) web interfaceshas:"html.title" html.title:"Veeam Service Provider Console"
# Discover Veeam Distribution Service API listenerstcp_port:9380
# Fingerprint Veeam Threat Hunter Remoting servicetcp_port:61755. Local PowerShell Audit & Technical Assessment Toolkit
Section titled “5. Local PowerShell Audit & Technical Assessment Toolkit”To evaluate compliance on individual Windows servers without third-party agents, administrators can execute the following operational verification scripts (adapted from Penligent’s technical assessment methodology):
# 1. Identify installed Veeam products and exact build versionsGet-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -like "*Veeam Backup*" } | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize
# 2. Check Active Directory domain membership status (Vulnerability Precondition)(Get-CimInstance Win32_ComputerSystem) | Select-Object Name, Domain, PartOfDomain | Format-List
# 3. Check status of all Veeam-related Windows servicesGet-Service | Where-Object { $_.DisplayName -like "*Veeam*" -or $_.Name -like "*Veeam*" } | Sort-Object Status, Name | Select-Object Status, Name, DisplayName, StartType | Format-Table -AutoSize# Map listening TCP ports to their owning process namesGet-NetTCPConnection -State Listen | ForEach-Object { $proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue [PSCustomObject]@{ LocalAddress = $_.LocalAddress LocalPort = $_.LocalPort ProcessId = $_.OwningProcess ProcessName = $proc.ProcessName } } | Where-Object { $_.LocalPort -in 6175, 9380, 9401, 10006 } | Sort-Object LocalPort | Format-Table -AutoSize
# Inspect active inbound firewall rules covering Veeam portsGet-NetFirewallRule -Enabled True -Direction Inbound | Where-Object { $_.DisplayName -match "Veeam|Backup|Replication|6175" } | Select-Object DisplayName, Profile, Action, Enabled | Format-Table -AutoSize# Verify upgrade to 12.3.2.4854 or later$vbr = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -like "Veeam Backup & Replication Server" }
if ($vbr.DisplayVersion -ge "12.3.2.4854") { Write-Host "[+] PASS: Veeam Backup & Replication is patched (Build: $($vbr.DisplayVersion))" -ForegroundColor Green} else { Write-Host "[!] CRITICAL: Host is running vulnerable version $($vbr.DisplayVersion)!" -ForegroundColor Red}6. Indicators of Compromise (IOCs) & SOC Investigation Matrix
Section titled “6. Indicators of Compromise (IOCs) & SOC Investigation Matrix”Forensic investigators responding to potential CVE-2026-44963 intrusions should evaluate network, host, and event telemetry across the following vectors.
6.1 Network Indicators (North-South & East-West)
Section titled “6.1 Network Indicators (North-South & East-West)”[Suspicious Inbound Connection]Source IP: Internal IP (workstation, DMZ bastion, or unmanaged endpoint)Destination IP: Veeam Backup & Replication ServerDestination Port: 6175/TCPProtocol: .NET Remoting (raw TCP channel with NTLM authentication header)
[Malicious Outbound Callback (The Reverse Trigger)]Source IP: Veeam Backup & Replication ServerSource Port: Ephemeral high port (e.g., 49152 - 65535)Destination IP: Untrusted internal IP or external IPDestination Port: Arbitrary high port (e.g., 4444, 8888, 9999, 1337)Payload Signature: Remoting handshake or binary stream containing System.Runtime.Remoting6.2 Host & Process Telemetry (Parent-Child Anomalies)
Section titled “6.2 Host & Process Telemetry (Parent-Child Anomalies)”Under normal operating conditions, VeeamThreatHunterSvc.exe executes backup catalog indexing, guest OS file indexing, and threat scanning tasks. It never spawns interactive command interpreters, scripting engines, or network utilities.
Parent Process: C:\Program Files\Veeam\Backup and Replication\Backup\VeeamThreatHunterSvc.exeParent User: NT AUTHORITY\SYSTEM
Suspicious Child Processes (CRITICAL ALERT): - cmd.exe - powershell.exe / pwsh.exe - wscript.exe / cscript.exe - mshta.exe - certutil.exe - curl.exe / bitsadmin.exe - rundll32.exe / regsvr32.exe - whoami.exe / net.exe / net1.exe / nltest.exe6.3 Windows Security Event Logs
Section titled “6.3 Windows Security Event Logs”- Event ID 4624 (Successful Logon):
- Logon Type:
3(Network Logon) - Logon Process:
NtLmSsporKerberos - Workstation Name: Identifier of attacker-controlled device
- Target User Name: Any unprivileged domain account or machine account immediately preceding anomalous service activity.
- Logon Type:
- Event ID 4688 (Process Creation):
- Creator Process Name:
*\VeeamThreatHunterSvc.exe - New Process Name: Command shell or script host.
- Token Elevation Type:
TokenElevationTypeDefault (1)running asS-1-5-18(Local System).
- Creator Process Name:
- Event ID 1000 / 1026 (.NET Runtime Crash / Exception):
- If an exploit payload encounters a type mismatch or malformed remoting stream, the CLR logs an Application Error detailing
System.Runtime.Remoting.RemotingExceptionorSystem.Runtime.Serialization.SerializationExceptionwithinVeeamThreatHunterSvc.exe.
- If an exploit payload encounters a type mismatch or malformed remoting stream, the CLR logs an Application Error detailing
6.4 Behavioral SOC Threat Hunting Matrix
Section titled “6.4 Behavioral SOC Threat Hunting Matrix”| Detection Question | Operational Significance | Telemetry Signals & Filters |
|---|---|---|
| Unexpected domain user logon to VBR? | Flaw requires authenticated domain identity | Windows Security Event ID 4624 (Logon Type 3) from non-admin accounts |
| Veeam service spawned unusual processes? | Exploitation spawns shells or LOLBins | Event ID 4688, Sysmon Event ID 1 (parent *Veeam* -> child cmd.exe, powershell.exe) |
| VBR server initiated unexpected outbound connections? | Reverse callback to attacker listener / staging | Sysmon Event ID 3, Firewall logs (outbound high ports to untrusted IPs) |
| Service account accessed resources outside backup windows? | Credential reuse from backup secrets | EDR identity telemetry, Kerberos TGS requests outside scheduled backup windows |
| Repository retention or backup jobs modified? | Attacker preparing environment for ransomware | Veeam audit logs, Event ID 4663 on backup repository storage |
7. Comprehensive Detection Suite
Section titled “7. Comprehensive Detection Suite”Deploy the following detection engineering artifacts across your SIEM, EDR, and network monitoring platforms:
title: Suspicious Process Creation by Veeam Threat Hunter Serviceid: a89c45b2-3f12-4891-b952-cve202644963status: productiondescription: Detects unexpected child processes spawned by VeeamThreatHunterSvc.exe, indicative of CVE-2026-44963 exploitation.references: - https://www.veeam.com/kb4869 - https://www.miggo.io/post/the-backup-that-backfired-how-one-whitelisted-objref-hands-any-veeam-domain-user-system-cve-2026-44963author: Hermes Security Research Teamdate: 2026-06-11logsource: category: process_creation product: windowsdetection: selection: ParentImage|endswith: '\VeeamThreatHunterSvc.exe' Image|endswith: - '\cmd.exe' - '\powershell.exe' - '\pwsh.exe' - '\wscript.exe' - '\cscript.exe' - '\rundll32.exe' - '\regsvr32.exe' - '\mshta.exe' - '\certutil.exe' - '\whoami.exe' - '\net.exe' - '\net1.exe' condition: selectionfields: - ComputerName - User - ParentImage - Image - CommandLinefalsepositives: - None observed in default enterprise deployments.level: criticaltags: - attack.execution - attack.t1059 - attack.lateral_movement - attack.t1210 - cve.2026_44963title: Suspicious Child Process From Any Veeam Related Processid: 8b4b0f64-9b2f-4f2a-a0d8-veeam-rce-huntstatus: productiondescription: Detects command interpreters and common LOLBins spawned by any Veeam-related service on backup servers.references: - https://www.penligent.ai/hackinglabs/cve-2026-44963/author: Hermes Security Research Teamdate: 2026-06-11logsource: category: process_creation product: windowsdetection: selection_parent: ParentImage|contains: '\Veeam' selection_child: Image|endswith: - '\cmd.exe' - '\powershell.exe' - '\pwsh.exe' - '\wscript.exe' - '\cscript.exe' - '\rundll32.exe' - '\regsvr32.exe' - '\certutil.exe' - '\bitsadmin.exe' condition: selection_parent and selection_childfields: - ComputerName - User - ParentImage - Image - CommandLinefalsepositives: - Veeam support maintenance scripts (rare).level: hightags: - attack.execution - attack.t1059 - cve.2026_44963title: Anomalous Outbound Network Connection from Veeam Threat Hunterid: b92d56c3-4e23-5902-ca63-cve202644963netstatus: productiondescription: Detects outbound TCP connections initiated by VeeamThreatHunterSvc.exe to non-standard remote ports, indicating an ObjRef callback trigger.references: - https://www.veeam.com/kb4869author: Hermes Security Research Teamdate: 2026-06-11logsource: category: network_connection product: windowsdetection: selection: Image|endswith: '\VeeamThreatHunterSvc.exe' Initiated: 'true' filter_local: DestinationIp: - '127.0.0.1' - '::1' condition: selection and not filter_localfields: - ComputerName - Image - SourceIp - DestinationIp - DestinationPortlevel: hightags: - attack.command_and_control - attack.t1071 - cve.2026_44963rule Exploit_CVE_2026_44963_Veeam_Remoting_ObjRef { meta: description = "Detects .NET Remoting TCP payload exploiting CVE-2026-44963 via ObjRef deserialization callback" author = "Hermes Codex Threat Intelligence" date = "2026-06-11" reference = "https://www.veeam.com/kb4869" hash = "b7a2d6e491823c914e9f7832810a9fbc629374028e5192837401928301928471" severity = "Critical" strings: // .NET Remoting TCP frame magic header $remoting_magic = { 2E 4E 45 54 00 00 00 00 } // .NET....
// Target service URI identifier $service_uri = "VeeamThreatHunter" ascii wide nocase
// Allowlisted ObjRef class instantiation $objref_type = "System.Runtime.Remoting.ObjRef" ascii
// Serialized delegate gadget markers in reply leg $gadget_typeconfuse = "TypeConfuseDelegate" ascii $gadget_sortedset = "System.Collections.Generic.SortedSet" ascii $gadget_process = "System.Diagnostics.Process" ascii condition: ($remoting_magic and $service_uri and $objref_type) or ($objref_type and ($gadget_typeconfuse or ($gadget_sortedset and $gadget_process)))}// Query 1: Hunting for anomalous child processes of VeeamThreatHunterSvcDeviceProcessEvents| where InitiatingProcessFileName =~ "VeeamThreatHunterSvc.exe"| where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "whoami.exe", "net.exe", "net1.exe", "certutil.exe", "rundll32.exe")| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine, AccountName, AccountDomain| order by Timestamp desc
// Query 2: Suspicious outbound network connections from backup serversDeviceNetworkEvents| where DeviceName has_any ("veeam", "backup", "vbr")| where RemoteUrl !endswith ".microsoft.com"| where RemoteIPType == "Public" or RemotePort in (22, 80, 443, 445, 3389, 5985, 5986, 9999, 1337)| summarize Count=count(), FirstSeen=min(Timestamp), LastSeen=max(Timestamp), RemotePorts=make_set(RemotePort), RemoteIPs=make_set(RemoteIP) by DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine| order by LastSeen desc# Query 1: Sysmon Process Creation on Veeam hostsindex=wineventlog sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1parent_image="*\\VeeamThreatHunterSvc.exe"image IN ("*\\cmd.exe", "*\\powershell.exe", "*\\wscript.exe", "*\\cscript.exe", "*\\rundll32.exe", "*\\whoami.exe", "*\\net.exe")| table _time, host, user, parent_image, image, process_command_line
# Query 2: Outbound network connection anomaly from VeeamThreatHunterSvcindex=wineventlog sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3image="*\\VeeamThreatHunterSvc.exe" NOT (dest_ip IN ("127.0.0.1", "::1"))| table _time, host, image, dest_ip, dest_port, protocol8. Defensive Engineering & 10-Step Hardening Framework
Section titled “8. Defensive Engineering & 10-Step Hardening Framework”Organizations operating Veeam Backup & Replication must implement the following remediation hierarchy immediately.
8.1 Priority 1: Patch Deployment (KB4869)
Section titled “8.1 Priority 1: Patch Deployment (KB4869)”Apply the official vendor patch from Veeam:
- Patch Package: Update to Veeam Backup & Replication 12.3.2.4854 (available via Veeam KB4869).
- What the Patch Modifies: The hotfix updates
Veeam.Backup.ThreatHunter.Service.dllto exciseSystem.Runtime.Remoting.ObjReffromwhitelist.txt, enforces bidirectional channel inspection on both request and reply streams, and tightens authentication controls to require local administrative privilege rather than genericBUILTIN\Users.
8.2 Priority 2: Immediate Network Perimeter Isolation
Section titled “8.2 Priority 2: Immediate Network Perimeter Isolation”If maintenance windows prevent immediate binary patching, implement host-based or network firewall access control lists (ACLs) on the backup server:
# PowerShell script to block inbound access to TCP 6175 from remote endpointsNew-NetFirewallRule -DisplayName "Hermes-Mitigation-Block-Veeam-Port-6175" ` -Direction Inbound ` -LocalPort 6175 ` -Protocol TCP ` -Action Block ` -RemoteAddress Any ` -Profile Any ` -Description "Emergency mitigation for CVE-2026-44963: Blocks external access to VeeamThreatHunterSvc"Note: Port 6175 is used exclusively for internal threat hunting inter-process communication on the local VBR server. Blocking external network access to port 6175 does not interrupt scheduled backup jobs, tape archiving, or replication data streams.
8.3 Priority 3: Service Deactivation (Zero-Impact Workaround)
Section titled “8.3 Priority 3: Service Deactivation (Zero-Impact Workaround)”If firewall restrictions cannot be deployed, the Veeam Backup Threat Hunter Service can be temporarily stopped and disabled without breaking core backup storage and restoration operations:
Stop-Service -Name "VeeamThreatHunterSvc" -ForceSet-Service -Name "VeeamThreatHunterSvc" -StartupType Disabled8.4 Priority 4: The 10-Step Strategic Hardening Framework
Section titled “8.4 Priority 4: The 10-Step Strategic Hardening Framework”| Step | Security Control | Operational Objective |
|---|---|---|
| 1 | Upgrade to Build 12.3.2.4854+ | Eliminates confirmed vulnerability in legacy .NET Remoting pipeline |
| 2 | Identify All Domain-Joined VBR Hosts | Map all backup servers exposing the BUILTIN\Users vulnerability condition |
| 3 | Network Segmentation & Firewall ACLs | Restrict port 6175 and management interfaces to dedicated bastion jumpboxes |
| 4 | Sever User VLAN Ingress | Remove general corporate user network access to backup management interfaces |
| 5 | Decouple from Production Active Directory | Re-deploy backup servers in an isolated workgroup or dedicated Tier-0 forest |
| 6 | Enforce MFA for All Backup Operators | Neutralize impact of stolen domain credentials on backup management consoles |
| 7 | Least Privilege Role Hygiene | Restrict Veeam roles; treat backup administrative accounts as Tier-0 identities |
| 8 | High-Value Asset EDR Monitoring | Deploy advanced EDR agents and ingest all process/network telemetry into SIEM |
| 9 | Validate Recovery Workflows | Perform automated sandbox restoration tests to ensure integrity post-patch |
| 10 | Implement Hardened Immutability | Enforce Linux hardened repositories (chattr +i) or S3 Object Lock (Compliance) |
9. Correlation with Historical Veeam Vulnerability Landscape
Section titled “9. Correlation with Historical Veeam Vulnerability Landscape”CVE-2026-44963 is the culmination of a persistent threat pattern targeting enterprise backup planes:
| CVE | Year | Vulnerability Type & Affected Component | Operational Relevance to CVE-2026-44963 |
|---|---|---|---|
| CVE-2023-27532 | 2023 | Unauthenticated Credential Disclosure (Veeam Backup Service) | Demonstrated that initial foothold on backup port allows stealing AD service account secrets |
| CVE-2024-40711 | 2024 | Pre-Auth Remote Code Execution via Deserialization | Weaponized in active ransomware campaigns (Akira, Fog, Frag) to destroy enterprise recovery |
| CVE-2025-23120 | 2025 | Authenticated Domain User RCE on Backup Server | Highlighted the identical design flaw: domain membership granting low-privileged RCE |
| CVE-2025-48983 | 2025 | Critical RCE in Veeam Mount Service | Showed repeated failure of domain-joined backup infrastructure service boundaries |
| CVE-2025-48984 | 2025 | Critical RCE on Domain-Joined Backup Servers | Demonstrated that domain-joined trust models consistently undermine backup server security |
| CVE-2026-21666 | 2026 | Authenticated Domain User RCE on VBR Backup Server | Sibling flaw in VBR 12.3.x / 13.0.x allowing domain accounts to gain full system control |
| CVE-2026-21668 | 2026 | Arbitrary File Manipulation on Backup Repositories | Allowed low-privileged users to overwrite and destroy restore points directly |
| CVE-2026-44963 | 2026 | RCE via .NET Remoting ObjRef Deserialization Callback | The definitive flaw: complete SYSTEM control via allowlisted deserialization reverse triggers |