Aller au contenu

CVE-2026-21708 : injection SQL PostgreSQL et exécution de code à distance via le rôle backup viewer dans Veeam Backup & Replication

HERMES

HERMES THREAT SCORE ET RISQUE D'ENTREPRISE

Cible : Moteur de base de données PostgreSQL et points d'agrégation de reporting Veeam
Confiance : 99%
99 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 19 / 20
Militarisation 20 / 20
Exposition 19 / 20
Prévalence 19 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 20 / 20
⚖️ Divergence & Justification opérationnelle

Le score Hermes évalue la CVE-2026-21708 à 99 (CRITIQUE). La couche applicative et les API se connectant à PostgreSQL avec les privilèges du superutilisateur postgres, une injection SQL exploitable par le rôle en lecture seule Backup Viewer brise instantanément le bac à sable de la base de données pour exécuter des commandes sur le système hôte, permettant la prise de contrôle intégrale du plan de reprise.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-21708: Veeam Backup & Replication PostgreSQL SQL Injection to RCEVULNÉRABILITÉ

Nœuds connectés : 1
Relations sortantes actives
→ affectsCOMPOSANTVeeam Backup & Replication
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Veeam Backup & Replication documented in Hermes dossier.”

Preuves vérifiées associées :

ParamètreSpécification techniqueImpact opérationnel
Identifiant CVECVE-2026-21708Identifiant mondial de suivi
Avis éditeurVeeam KB4830 (v12) & KB4831 (v13)Bulletins de sécurité cumulatifs
Versions affectéesVBR 12.x (12.0.0.1402 à < 12.3.2.4465) & 13.x (< 13.0.1.2067)Déploiements avec PostgreSQL
Versions corrigéesVBR Build 12.3.2.4465 & 13.0.1.2067Correctif cumulatif d’urgence
Composant vulnérableGestionnaire de requêtes de reportingConcaténation de requêtes dynamiques
Rôle minimal requisBackup ViewerRôle le plus faible du modèle RBAC Veeam
Compte de connexion BDDSuperutilisateur PostgreSQL (postgres)Privilèges SQL non restreints
ImpactRCE et évasion de bac à sable de la BDDPrise de contrôle absolue de l’hôte

2. Cause racine et évasion de bac à sable de la base de données

Section intitulée « 2. Cause racine et évasion de bac à sable de la base de données »

La CVE-2026-21708 résulte d’une absence de neutralisation des entrées utilisateur dans la construction de requêtes SQL dynamiques (CWE-89), aggravée par un niveau d’autorisation excessif du compte de connexion à PostgreSQL.

Cinématique d'exploitation de la CVE-2026-21708 :
[Opérateur authentifié (Rôle Backup Viewer)]
│
│ 1. Transmission d'un paramètre forgé via l'API REST / UI :
│ param = "'; COPY (SELECT '') TO PROGRAM 'cmd.exe /c ...'-- "
▼
[Moteur de requêtes Veeam]
│
│ 2. Concaténation directe de la chaîne dans l'ordre SQL dynamique
▼
[Serveur PostgreSQL (Port TCP 5432)]
│
│ 3. Exécution sous le compte superutilisateur 'postgres'
▼
[Évasion du bac à sable de la BDD (CWE-89)]
│
│ 4. PostgreSQL lance un sous-processus shell via 'COPY ... FROM PROGRAM'
▼
[Exécution de commandes sur le système hôte]
└── Exécution de la charge utile avec privilèges postgres / LocalSystem

Dans le modèle d’exploitation standard, un utilisateur auquel est affecté le rôle Backup Viewer est restreint à la consultation des statistiques de travaux, de l’espace de stockage et de l’historique d’exécution, sans pouvoir altérer l’infrastructure.

Cependant, comme le service applicatif interroge la base de données via un pool de connexions unique authentifié en tant que postgres, toute vulnérabilité d’injection SQL court-circuite intégralement le modèle de rôles RBAC applicatif. En refermant la requête légitime, l’attaquant injecte :

'; CREATE TABLE cmd_exec(output text);
COPY cmd_exec FROM PROGRAM 'powershell -enc <Charge_Base64>';--

Le service PostgreSQL disposant des capacités d’interaction avec le système d’exploitation, l’instruction COPY ... FROM PROGRAM engendre directement des processus enfants sous le compte de service de la base de données.


3. Chaîne d’attaque et exploitation par les rançongiciels

Section intitulée « 3. Chaîne d’attaque et exploitation par les rançongiciels »

Dans les opérations cybercriminelles, la CVE-2026-21708 abaisse drastiquement la barrière d’accès des attaquants :

  1. Exploitation de comptes à faible surveillance : les assaillants n’ont plus besoin de cibler les comptes administrateurs hautement surveillés. Un compte d’audit, de helpdesk ou de supervision tiers doté des droits Backup Viewer suffit.
  2. Prise de contrôle instantanée : l’envoi d’une unique requête HTTP POST permet d’obtenir un shell interactif sur le serveur de sauvegarde en quelques secondes.
  3. Destruction du plan de sauvegarde : depuis le shell hôte, l’attaquant extrait les clés DPAPI, siphonne les identifiants administrateurs Active Directory et déclenche les commandes d’effacement des dépôts de sauvegarde.

title: Service PostgreSQL engendrant un interpréteur de commandes
id: 7c12f498-8b21-4f12-9912-cve-2026-21708-pgescape-fr
status: production
description: Détecte le lancement d'interpréteurs de commandes engendrés directement par postgres.exe, révélateur d'une évasion par injection SQL liée à la CVE-2026-21708.
references:
- https://www.veeam.com/kb4830
- https://www.veeam.com/kb4831
author: Hermes Codex DFIR Lab
date: 2026-09-09
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\postgres.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\whoami.exe'
- '\net.exe'
- '\certutil.exe'
condition: selection_parent and selection_child
level: critical
tags:
- attack.execution
- attack.t1059
- attack.initial_access
- attack.t1190
- cve.2026-21708

  1. Installer sans délai les correctifs KB4830 / KB4831 : Mettre à niveau Veeam Backup & Replication 12 vers la version 12.3.2.4465 et VBR 13 vers la version 13.0.1.2067. Le correctif remplace l’ensemble des requêtes dynamiques par des requêtes préparées paramétrées.
  2. Auditer et restreindre les attributions du rôle backup viewer : Énumérer les comptes détenteurs du rôle Backup Viewer. Révoquer les accès non nécessaires et imposer le MFA sur la console d’administration pour tous les comptes.
  3. Isoler le port PostgreSQL sur l’interface locale : S’assurer que le service PostgreSQL sur le port TCP 5432 écoute exclusivement sur l’adresse de bouclage 127.0.0.1 et demeure inaccessible depuis les réseaux externes.

6. Renseignements connexes et navigation dans la série Veeam

Section intitulée « 6. Renseignements connexes et navigation dans la série Veeam »

7. Sources officielles et références vérifiées

Section intitulée « 7. Sources officielles et références vérifiées »