CVE-2026-21670: Low-Privileged Saved SSH Credential Extraction in Veeam Backup & Replication
HERMES THREAT SCORE & CREDENTIAL RISK
Target:Veeam Backup & Replication Credential Management Service - SSH Key Store Hermes Threat Score rates CVE-2026-21670 at 89 (HIGH). In environments utilizing Linux repositories, hypervisors, or cloud proxies, this vulnerability allows low-privileged backup operators to extract saved SSH private keys and credentials, enabling unauthorized lateral movement across the enterprise Linux server estate.
CVE-2026-21670: Veeam Backup Service WCF Impersonation Privilege EscalationVULNERABILITY
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”| Parameter | Technical Specification | Operational Impact |
|---|---|---|
| CVE Identifier | CVE-2026-21670 | Global vulnerability tracking identifier |
| Vendor Advisories | Veeam KB4830 (v12) & KB4831 (v13) | Security hotfix bulletins |
| Affected Versions | VBR 12.x < 12.3.2.4465 & 13.x < 13.0.1.2067 | Enterprise backup installations |
| Patched Builds | VBR 12.3.2.4465 & 13.0.1.2067 | Cumulative security releases |
| Vulnerable Service | Veeam.Backup.Service.exe | Credential provider RPC / REST handler |
| Compromised Asset | Saved SSH private keys & credentials | Root / administrative SSH access to Linux nodes |
| Required Privileges | Low-privileged authenticated Veeam user | Restore Operator, Tape Operator |
2. Technical Root Cause & Exploitation Mechanics
Section titled “2. Technical Root Cause & Exploitation Mechanics”The flaw is rooted in an Insecure Direct Object Reference (IDOR) / Broken Object Level Authorization (BOLA) pattern within the credential service handler of Veeam.Backup.Service.exe.
CVE-2026-21670 Credential Extraction Flow:
[Low-Privileged Operator (Restore Operator)] │ │ 1. Authenticates to VBR API / Console ▼ [Veeam Credential Management Service] │ │ 2. Queries Credential Object by ID: GetCredentials(credId) ▼ [Missing Object-Level Authorization] │ │ ⚠️ Verifies only general API authentication, NOT record ownership ▼ [DPAPI Decryption Invoked Internally] │ │ 3. Service decrypts stored SSH Private Key / Password ▼ [Plaintext SSH Private Key Returned to Operator] └── Used to establish root SSH session on Linux Repositories & ProxiesThe Credential Store Architecture
Section titled “The Credential Store Architecture”When an administrator registers a Linux host in Veeam, the server can store SSH credentials (either username/password or OpenSSH private keys). These objects are stored in the configuration database under table [dbo].[Credentials] and encrypted using local machine DPAPI keys.
When a client application (such as the management console or REST API) requests credential metadata to populate UI dropdowns, the API endpoint GetCredentials() improperly returned full credential blobs—including decrypted private keys—to any authenticated session without verifying whether the requesting user held administrative rights to view secrets.
3. Lateral Movement & Enterprise Impact
Section titled “3. Lateral Movement & Enterprise Impact”The extraction of saved SSH private keys enables catastrophic lateral movement across the Linux enterprise tier:
- Targeting Linux Proxies & Mount Servers: Attackers use extracted keys to log into Linux proxies as
rootorsudoer, establishing interactive shells. - Attacking Misconfigured Linux Repositories: If an organization failed to use single-use credentials or left SSH enabled on Linux repositories, an attacker possessing the private key can attempt to log in and tamper with non-immutable storage mounts.
- Escaping to Hypervisor Enclaves: In environments where ESXi hosts or vCenter appliances utilize SSH authentication stored in Veeam, attackers pivot directly into hypervisor management interfaces.
4. Detection Engineering
Section titled “4. Detection Engineering”title: Anomalous Veeam Credential Store Enumerationid: 5a7f91c2-3e41-4820-9124-cve-2026-21670-dumpstatus: productiondescription: Detects rapid sequential queries to Veeam credential management endpoints by non-administrator accounts, indicative of CVE-2026-21670 exploitation.references: - https://www.veeam.com/kb4830 - https://www.veeam.com/kb4831author: Hermes Codex DFIR Labdate: 2026-09-09logsource: category: application product: windowsdetection: selection: Source: 'Veeam Backup Catalog' EventID: 100 Message|contains: - 'GetCredentials' - 'FindCredentials' - 'ExportCredentials' filter_admin: User|contains: - 'Administrator' - 'VeeamAdmin' condition: selection and not filter_adminlevel: hightags: - attack.credential_access - attack.t1555 - cve.2026-21670// Microsoft Sentinel KQL: Correlate Veeam low-privileged logins with immediate outbound SSH connectionslet VeeamServers = dynamic(["10.100.50.10", "10.100.50.15"]);let SuspiciousLogons = SecurityEvent| where Computer in (VeeamServers) and EventID == 4624| where TargetUserName !in ("Administrator", "SYSTEM")| project LogonTime = TimeGenerated, TargetUserName, IpAddress;DeviceNetworkEvents| where InitiatingProcessFileName in ("ssh.exe", "putty.exe", "plink.exe") or RemotePort == 22| join kind=inner (SuspiciousLogons) on $left.DeviceName == $right.Computer| where TimeGenerated between (LogonTime .. (LogonTime + 15m))| project TimeGenerated, TargetUserName, RemoteIP, RemotePort, InitiatingProcessCommandLinerule Hunt_Staged_Veeam_SSH_Keys { meta: description = "Detects extracted OpenSSH and RSA private keys dropped in temporary directories" author = "Hermes Codex CTI" date = "2026-09-09" severity = "High" strings: $ssh1 = "-----BEGIN OPENSSH PRIVATE KEY-----" ascii $ssh2 = "-----BEGIN RSA PRIVATE KEY-----" ascii $veeam_tag = "Veeam" ascii wide nocase condition: ($ssh1 or $ssh2) and $veeam_tag}5. Remediation & Hardening Recommendations
Section titled “5. Remediation & Hardening Recommendations”- Apply Security Hotfixes KB4830 / KB4831:
Update VBR 12 installations to 12.3.2.4465 and VBR 13 installations to 13.0.1.2067. The patch enforces strict role validation (
Backup Administratorrole required) prior to returning credential data. - Rotate Stored SSH Private Keys & Passwords: Immediately cycle all SSH keypairs and passwords stored in the Veeam credential manager for managed Linux proxies and hypervisors.
- Audit User Role Allocations: Review all assigned roles in Veeam Console > Users and Roles. Ensure operators hold strictly minimal required permissions.