Journaux PostgreSQL & crashs
Surveillez /var/log/postgresql/ à la recherche des motifs :
postgres: unexpected syntax error in logical replication table sync query. Recherchez les erreurs de syntaxe inattendues ou les arrêts anormaux de workers.
PostgreSQL Server (src/backend/commands/subscriptioncmds.c) Le score CVSS v3.1 évalue CVE-2026-6638 à 3.7 (LOW, CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N). Le score opérationnel Hermes s'établit à 68 (LOW) en raison de la criticité des données stockées dans le SGBD PostgreSQL.
Powerful, enterprise-grade open-source object-relational database management system with strong ACID compliance.
“Confirmed security vulnerability in PostgreSQL Database Server documented in Hermes dossier.”
Le composant PostgreSQL Server (src/backend/commands/subscriptioncmds.c) intervient au cœur du moteur relationnel, des outils d’administration et des protocoles de réplication de PostgreSQL.
| Paramètre | Spécification technique | Contexte threat intelligence |
|---|---|---|
| Identifiant CVE | CVE-2026-6638 | Bulletin officiel de sécurité amont |
| Produit affecté | postgresql:postgresql | Écosystème de bases de données relationnelles |
| Composant vulnérable | PostgreSQL Server (src/backend/commands/subscriptioncmds.c) | Moteur PostgreSQL / Outil / Extension |
| Classe de faiblesse | CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') | Faiblesse de contrôle d’accès / Sûreté mémoire |
| Score CVSS v3.1 | 3.7 (LOW / Score Hermes 68) | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N |
| Version corrigée | 18.4 | Correctif officiel amont |
| Techniques MITRE ATT&CK | T1505.001 - SQL Stored Procedures, T1078 - Valid Accounts | Élévation de privilèges / Exécution de commandes |
| Référence forensique | Surveillance des journaux d’audit et requêtes SQL | Analyse mémoire et télémétrie des requêtes |
L’examen du code source incriminé met en évidence la faille logique ou l’absence de validation des paramètres :
// Flaw in src/backend/commands/subscriptioncmds.c (fetch_table_list)StringInfoData cmd;initStringInfo(&cmd);/* VULNERABILITY: Appends relation name without quote_identifier() */appendStringInfo(&cmd, "SELECT relname FROM pg_class WHERE relname = '%s'", table_name); // Allows SQL injection on remote publisher!Sous certaines conditions d’exploitation, le moteur de base de données exécute du SQL non neutralisé, subit un bouclage arithmétique ou dépasse les limites allouées en mémoire vive.
t'; INSERT INTO admin_keys VALUES ('evil'); --.PostgreSQL Server (src/backend/commands/subscriptioncmds.c).REFRESH PUBLICATION, la requête injectée est transmise et exécutée sur la base de production primaire..Les équipes d’administration de bases de données et les analystes DFIR peuvent détecter les tentatives d’exploitation dans les journaux de requêtes et les traces système.
Journaux PostgreSQL & crashs
Surveillez /var/log/postgresql/ à la recherche des motifs :
postgres: unexpected syntax error in logical replication table sync query. Recherchez les erreurs de syntaxe inattendues ou les arrêts anormaux de workers.
Auditd & traçage des commandes
Tracez les processus enfants créés sous l’utilisateur postgres ou l’exécution de programmes via COPY. Consultez Surveillance des journaux d’audit et requêtes SQL.
title: PostgreSQL Logical Replication Injection via Malformed Table Identifier (FR)id: cve-2026-6638status: experimentaldescription: Détecte les anomalies d'exécution SQL et les signatures d'exploitation pour CVE-2026-6638.logsource: category: database product: postgresqldetection: selection: - 'postgres:' - 'postgresql' condition: selectionfields: - Query - Userlevel: high# Surveillance par tracepoint eBPF des processus spawned par PostgreSQLsudo bpftrace -e 'tracepoint:syscalls:sys_enter_execve /comm == "postgres"/ { printf("PID %d a lancé: %s\n", pid, str(args->filename));}'La sécurisation des instances PostgreSQL repose sur le déploiement des correctifs et le durcissement des privilèges :
postgresql:postgresql vers la version 18.4 ou supérieure via vos dépôts de distribution officiels.public (REVOKE CREATE ON SCHEMA public FROM PUBLIC;) et fixez systématiquement search_path = 'pg_catalog'.