Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.
Décomposition des dimensions
Exploitabilité18 / 20
Activité de menace16 / 20
Militarisation17 / 20
Exposition18 / 20
Prévalence19 / 20
Impact18 / 20
Maturité de l'exploit17 / 20
Potentiel d'attaque en chaîne19 / 20
⚖️Divergence & Justification opérationnelle
Le score CVSS v3.1 évalue CVE-2026-2360 à 8.0 (HIGH, CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H). Le score opérationnel Hermes s'établit à 88 (HIGH) en raison de la criticité des données stockées dans le SGBD PostgreSQL.
Le composant PostgreSQL Anonymizer (anon extension - search_path) intervient au cœur du moteur relationnel, des outils d’administration et des protocoles de réplication de PostgreSQL.
L’examen du code source incriminé met en évidence la faille logique ou l’absence de validation des paramètres :
-- Flaw in anon.sql
-- VULNERABILITY: Missing SET search_path = pg_catalog, pg_temp;
CREATE OR REPLACE FUNCTION anon.anonymize_database()
RETURNS BOOLEAN AS $$
BEGIN
-- If an attacker created an operator = (text, text) in schema 'public',
-- it gets invoked here under superuser execution!
IF anon.is_masked() THEN
...
END IF;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
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.
Vecteur initial & prérequis : un utilisateur normal crée un opérateur dans le schéma public surchargeant l’égalité : CREATE OPERATOR public.= (FUNCTION = evil_func, LEFTARG = text, RIGHTARG = text);.
Déclenchement de la primitive : l’attaquant injecte une requête forgée ou soumet des données altérées vers PostgreSQL Anonymizer (anon extension - search_path).
Rupture d’isolement : le mécanisme de contrôle d’accès ou l’intégrité de la mémoire est rompu.
Conséquences opérationnelles : lorsque le DBA installe l’extension ou déclenche le masquage des données, evil_func est exécuté sous l’identité superutilisateur, octroyant les privilèges maximaux à l’attaquant..
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: Superuser executed custom operator public.= defined by untrusted user. Recherchez les erreurs de syntaxe inattendues ou les arrêts anormaux de workers.
La sécurisation des instances PostgreSQL repose sur le déploiement des correctifs et le durcissement des privilèges :
Mise à jour logicielle : mettez à niveau dalibo:postgresql_anonymizer vers la version 3.0.0 ou supérieure via vos dépôts de distribution officiels.
Durcissement des schémas : révoquez les droits de création sur le schéma public (REVOKE CREATE ON SCHEMA public FROM PUBLIC;) et fixez systématiquement search_path = 'pg_catalog'.