Aller au contenu

CVE-2026-31377 : accès non authentifié au service de métadonnées du frontend Apache Doris et exfiltration de schéma

HERMES

SCORE DE MENACE HERMES & COMPROMISSION DU PÉRIMÈTRE

Cible : Entrepôts de données temps réel d'entreprise, moteurs OLAP & grappes MPP
Confiance : 94%
84 / 100
ÉLEVÉ

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

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

Le standard CVSS v3.1 évalue la CVE-2026-31377 à 7.5 Élevé avec un impact cantonné à la confidentialité. Le Hermes Threat Score élève cette note à 84 (ÉLEVÉ). Apache Doris est déployé au cœur des entrepôts de données massifs traitant les flux décisionnels, les métriques télémétriques et les synthèses financières. L'exposition des métadonnées internes du FE permet aux attaquants de déduire les schémas complets de bases, les topologies d'adresses IP des nœuds Backend et les empreintes de partitions, fournissant une phase de reconnaissance idéale pour des attaques ciblées ultérieures.

HASS

SÉVÉRITÉ AGENTIQUE HASS & IMPACT SUR L'ISOLATION DES AGENTS

Cible : Service de métadonnées interne Doris FE & protocole de découverte de nœuds
Confiance : 90%
52 / 100
MODÉRÉ

Mesure le risque systémique spécifique découlant de l'autonomie, de l'autorité des outils et de l'exécution en cascade.

Décomposition des dimensions
Autonomie décisionnelle 12 / 20
Accès aux outils & APIs 14 / 20
Privilege 11 / 15
Persistence 8 / 15
External Impact 7 / 15
Propagation 0 / 15
⚖️ Divergence & Justification opérationnelle

Les frameworks d'agents d'analyse de données et les moteurs Text-to-SQL interrogent les catalogues de schémas pour formuler leurs requêtes. L'accès non authentifié aux points de terminaison de métadonnées permet à un attaquant ou un agent malveillant de cartographier la structure relationnelle interne et d'altérer les décisions sémantiques des agents d'entreprise.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-31377: Apache Doris Frontend Meta Service Unauthenticated Access and Metadata ExfiltrationVULNÉRABILITÉ

Nœuds connectés : 3
Relations sortantes actives
→ affectsCOMPOSANTApache Doris MPP Database
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Apache Doris MPP Database documented in Hermes dossier.”

Preuves vérifiées associées :
92% VERY_HIGH

Adversarial subversion of structured tool execution arguments (SQL, Shell, Filepath) passed from an LLM agent to host OS tools or MCP endpoints.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“CVE-2026-31377 weaponizes the agentic attack pattern formalized under AAP-003.”

Preuves vérifiées associées :
92% VERY_HIGH

Exploitation of unauthenticated, unsigned inter-agent communication channels to forge delegation directives, impersonate orchestrator agents, and command worker subagents.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“CVE-2026-31377 weaponizes the agentic attack pattern formalized under AAP-006.”

Preuves vérifiées associées :

1. Contexte technique et matrice des versions affectées

Section intitulée « 1. Contexte technique et matrice des versions affectées »

Au sein d’un cluster Apache Doris, les nœuds FE exécutent un démon Java gérant un catalogue en mémoire, un journal répliqué BDB-JE (Berkeley DB Java Edition) et les interfaces d’administration HTTP/Thrift.

ParamètreSpécification techniqueImpact opérationnel
Identifiant CVECVE-2026-31377Avis officiel Apache Doris / Registre NIST NVD
Classe de vulnérabilitéAuthentification impropre (CWE-287) / Absence d’authentification (CWE-306)Exfiltration non authentifiée de l’état du cluster et des schémas
Composant vulnérableService de métadonnées Doris FE (ports HTTP 8030 / RPC 9010)Servlets de synchronisation de nœuds et d’export d’images
Vecteur d’exploitationRequêtes HTTP/RPC directes avec en-têtes d’identité de nœud falsifiésContournement des contrôles d’accès administratifs
Privilèges requisAucun (PR:N)Faille réseau accessible avant authentification
Privilèges obtenusAccès en lecture aux métadonnées, schémas et topologie interneRécupération des structures de tables, partitions et adresses IP
Versions affectées2.0.0–2.0., 2.1.0–2.1., 3.0.0–3.0., 3.1.0–3.1., 4.0.0–4.0.7, 4.1.0–4.1.3Clusters analytiques temps réel, entrepôts décisionnels cloud
Correctifs publiésApache Doris 4.0.8 et 4.1.4Validation obligatoire du jeton cryptographique de cluster

2. Anatomie de la vulnérabilité et analyse de la cause racine

Section intitulée « 2. Anatomie de la vulnérabilité et analyse de la cause racine »

Contrôle d’identité client sans vérification cryptographique

Section intitulée « Contrôle d’identité client sans vérification cryptographique »

Le démon Frontend expose des points d’accès HTTP internes (sous /rest/v1/meta/ ou port 8030) et des services Thrift RPC (port 9010) permettant aux nœuds suiveurs et observateurs de synchroniser les fichiers d’image du catalogue.

Dans les versions vulnérables, le répartiteur de requêtes vérifiait la légitimité des demandes de synchronisation en comparant le nom de nœud transmis dans les en-têtes HTTP (X-Doris-Node-Name) à la liste des nœuds enregistrés dans le catalogue, sans vérifier l’origine de la connexion ni requérir le jeton partagé (auth_token) :

// Contrôle d'authentification défaillant dans MetaAction / NodeSyncHandler de Doris FE
public class MetaAction extends RestBaseAction {
@Override
public void execute(BaseRequest request, BaseResponse response) {
String clientNodeName = request.getHeader("X-Doris-Node-Name");
String requestedImageVersion = request.getParameter("version");
// FAILLE : Le service vérifie uniquement si clientNodeName est un nœud enregistré,
// mais NE CONTRÔLE PAS l'identité cryptographique ou le jeton de grappe de l'appelant !
if (Catalog.getCurrentCatalog().isRegisteredNode(clientNodeName)) {
// Un appelant non authentifié prétendant être "fe_follower_1" reçoit l'image !
File imageFile = Storage.getLatestMetaImageFile();
response.sendFile(imageFile);
return;
}
// Sur d'autres endpoints, l'absence de vérification permettait l'export du schéma
sendMetadataDump(request, response);
}
}

Les noms de nœuds FE étant généralement prévisibles (ex. fe_1, follower_node), un attaquant distant peut envoyer une simple requête HTTP munie de l’en-tête forgé pour forcer le FE à lui transmettre les clichés de métadonnées et la structure de l’ensemble des bases du cluster.


3. Vecteurs d’attaque et cinématique forensique d’exécution

Section intitulée « 3. Vecteurs d’attaque et cinématique forensique d’exécution »
sequenceDiagram
autonumber
actor Attacker as Attaquant distant
participant FE as Apache Doris FE (TCP 8030 / 9010)
participant Catalog as Catalogue FE en mémoire & BDB-JE
participant Storage as Stockage métadonnées / Fichiers images
participant Warehouse as Tables de données analytiques
Attacker->>FE: Connexion sur le port HTTP 8030 / RPC 9010
Attacker->>FE: GET /rest/v1/meta/image (Header: X-Doris-Node-Name: fe_node_1)
FE->>Catalog: isRegisteredNode("fe_node_1") -> Retourne TRUE (confiance aveugle)
FE->>Storage: Lecture de la dernière image de métadonnées
Storage-->>FE: Flux de données sérialisées (schémas, partitions, hashs de tokens)
FE-->>Attacker: 200 OK (Contenu complet du catalogue et de la topologie)
Attacker->>Attacker: Reconstitution du modèle de données et des comptes
Attacker->>Warehouse: Attaque ciblée par injection SQL ou exfiltration directe sur les nœuds Backend
  1. Reconnaissance réseau : L’attaquant identifie les ports Frontend d’Apache Doris exposés sur le réseau (ports TCP 8030 ou 9010).
  2. Usurpation d’identité de nœud : L’adversaire forge une requête HTTP vers l’API de synchronisation en adjoignant un en-tête mentionnant un nœud suiveur standard.
  3. Contournement de l’authentification : Le point de terminaison FE valide la présence du nom de nœud dans le catalogue sans authentifier l’appelant.
  4. Exfiltration du dump de métadonnées : Le démon FE sérialise et transmet l’image de sauvegarde du catalogue à l’attaquant non authentifié.
  5. Exploitation de la reconnaissance : L’attaquant extrait les structures de tables confidentielles, les définitions de colonnes et les adresses IP internes des nœuds Backend pour lancer des attaques ciblées ultérieures.

4. Investigation forensique et réponse à incident

Section intitulée « 4. Investigation forensique et réponse à incident »

Les analystes DFIR intervenant sur un cluster Apache Doris doivent inspecter les journaux suivants :

Commandes d’investigation sur les nœuds Frontend

Section intitulée « Commandes d’investigation sur les nœuds Frontend »
Fenêtre de terminal
# 1. Vérifier les accès HTTP suspects aux endpoints de métadonnées dans les journaux d'audit
grep -E "/rest/v1/meta|/image|/dump" /opt/apache-doris/fe/log/fe.audit.log
# 2. Inspecter les messages d'erreurs de synchronisation dans les logs d'application
grep -E "MetaAction|NodeSync|reject|download image" /opt/apache-doris/fe/log/fe.log | grep -v "127.0.0.1"
# 3. Auditer les connexions réseau actives sur les ports d'administration
ss -tanp | grep -E "8030|9010|9020|9030"
# 4. Consulter l'état des nœuds du cluster via le client MySQL
mysql -h 127.0.0.1 -P 9030 -u root -e "SHOW FRONTENDS; SHOW BACKENDS;"
# 5. Contrôler l'état d'activation du jeton d'authentification dans la configuration
grep -E "auth_token|enable_token_check" /opt/apache-doris/fe/conf/fe.conf

5. Chasse aux menaces et ingénierie de détection

Section intitulée « 5. Chasse aux menaces et ingénierie de détection »
title: Accès non autorisé au service de métadonnées Apache Doris FE
id: 31377c02-doris-fe-meta-auth-bypass-fr
status: experimental
description: Détecte des requêtes HTTP suspectes ciblant les points d'accès de métadonnées d'Apache Doris Frontend.
author: Hermes Codex Detection Engineering
date: 2026-09-24
logsource:
category: webserver
product: apache_doris
detection:
selection_uri:
cs-uri-stem|contains:
- '/rest/v1/meta'
- '/rest/v1/image'
- '/rest/v1/dump'
filter_internal:
c-ip|in:
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '127.0.0.1'
condition: selection_uri and not filter_internal
falsepositives:
- Synchronisations légitimes inter-centres de données sans encapsulation VPN.
level: high
tags:
- attack.reconnaissance
- attack.t1592
- cve.2026-31377

Mettre à jour l’ensemble des nœuds Frontend et Backend vers Apache Doris 4.0.8 ou 4.1.4 :

  • Pour les branches 4.0.x : migrer vers la version 4.0.8 ou supérieure.
  • Pour les branches 4.1.x : migrer vers la version 4.1.4 ou supérieure.
  1. Activer le jeton cryptographique de cluster : Définir un jeton fort dans fe.conf :
    auth_token = <cle_aleatoire_securisee_hex_64_octets>
    enable_token_check = true
  2. Cloisonnement strict des flux réseau : Isoler les ports FE (8030, 9010, 9020, 9030) à l’aide de pare-feux d’hôtes ou de sous-réseaux privés. Seuls les nœuds du cluster doivent être autorisés à dialoguer sur les ports 8030 et 9010.
  3. Centralisation des journaux d’audit : Acheminer les journaux fe.audit.log vers un SIEM d’entreprise pour corréler en temps réel toute requête anormale.

7. Recherches corrélées et références internes

Section intitulée « 7. Recherches corrélées et références internes »