Threat Intelligence

GHSA-mqjf-5f49-2fjh : la fonction jsonArrayContains de GeoServer, régression d'une faille de 2023, rouvre la voie à une RCE pré-authentification

Admin CyberAfrik 25 August 2026 39 lectures
GHSA-mqjf-5f49-2fjh : la fonction jsonArrayContains de GeoServer, régression d'une faille de 2023, rouvre la voie à une RCE pré-authentification

Rapport CTI technique du 25 août 2026

Résumé exécutif

Une injection SQL non authentifiée (CVSS 9.8, référencée GHSA-mqjf-5f49-2fjh) affecte la fonction jsonArrayContains de GeoServer, utilisée dans les expressions de filtre OGC pour interroger des champs JSON. Le défaut touche les déploiements utilisant les data stores PostGIS et Oracle JDBC et peut conduire à une exécution de code distante selon la configuration. Il s'agit d'une régression de CVE-2023-25158, une faille déjà corrigée dans la même fonction. La vulnérabilité a été divulguée publiquement le 12 août 2026 par le chercheur @q1uf3ng, et des tentatives d'exploitation ont commencé dans les heures suivant la publication, avant même la disponibilité d'un correctif officiel.

GeoServer a depuis publié les versions 3.0.1, 2.28.5 et 2.27.6, accompagnées des versions GeoTools corrigées 35.1, 34.5 et 33.6. Les instances exposées publiquement, un cas fréquent puisque les interfaces OGC WMS et WFS sont souvent ouvertes sans authentification pour alimenter des applications cartographiques publiques, restent la cible prioritaire des scans de masse observés depuis la divulgation. Ce rapport détaille le mécanisme de l'injection, la chronologie de l'exploitation et les mesures de confinement applicables en attendant ou en complément du correctif.

Chronologie

DateÉvénement
2023Correction initiale de CVE-2023-25158 dans la fonction jsonArrayContains
12 août 2026, 10:46 UTCDivulgation publique de la régression par le chercheur @q1uf3ng sur X
12-13 août 2026Début des tentatives d'exploitation, essentiellement du scan et de la sonde, depuis un nombre restreint d'adresses IP
13 août 2026Rapports publics confirmant des centaines de tentatives d'identification d'instances vulnérables
Post-divulgationPublication des versions corrigées 3.0.1, 2.28.5 et 2.27.6 (GeoTools 35.1, 34.5, 33.6)

Fiche vulnérabilité

GHSA-mqjf-5f49-2fjh | CVSS 3.1 : 9.8 | GeoServer (fonction jsonArrayContains, data stores PostGIS et Oracle JDBC)

Pour PostGIS 12 et versions ultérieures, la fonction jsonArrayContains(<column>, <pointer>, <value>) écrit le paramètre <value> directement dans la requête SQL générée sans l'échapper. GeoServer accepte les expressions de filtre CQL via ses interfaces OGC WMS et WFS, des interfaces fréquemment exposées sans authentification pour permettre à des applications cartographiques publiques de consommer les données. Un attaquant capable d'atteindre ces points d'entrée atteint directement le point d'injection, sans étape d'authentification intermédiaire.

Conditions d'exploitation : aucune authentification requise. L'attaquant doit seulement pouvoir soumettre une requête de filtre OGC (WMS ou WFS) contenant un appel à jsonArrayContains vers une instance exposée utilisant un data store PostGIS ou Oracle JDBC. PoC disponible : oui, publié par le chercheur découvreur au moment de la divulgation, ce qui explique la rapidité des tentatives d'exploitation observées. Patch/mitigation : mise à jour vers GeoServer 3.0.1, 2.28.5 ou 2.27.6 (avec GeoTools 35.1, 34.5 ou 33.6 selon la branche). En l'absence de mise à jour immédiate, restreindre l'accès public aux interfaces WMS/WFS et appliquer un filtrage WAF strict sur les paramètres de filtre CQL.

Les mainteneurs du projet ont explicitement qualifié cette faille de régression de CVE-2023-25158, un défaut déjà corrigé dans la même fonction : le correctif de 2023 n'a pas couvert le chemin de code réintroduit ou modifié depuis.

Diagramme de la chaîne d'attaque


Chronologie reconstruite à partir des rapports Hadrian, Field Effect et Security Affairs sur les premières heures d'exploitation.

Analyse technique

Étape 1 : divulgation publique et publication du PoC

Le 12 août 2026, le chercheur @q1uf3ng publie les détails de la régression et un code de démonstration, révélant que la fonction jsonArrayContains reste vulnérable à l'injection SQL malgré le correctif de 2023 sur une faille voisine.

Étape 2 : scan de masse des instances exposées

Dans les heures suivant la divulgation, des tentatives de sonde ciblent les interfaces OGC WMS et WFS accessibles publiquement, cherchant à identifier les instances utilisant un data store PostGIS ou Oracle JDBC vulnérable. Les rapports font état de centaines de tentatives concentrées depuis un nombre restreint d'adresses source, un profil typique de reconnaissance automatisée plutôt que de campagne ciblée.

Étape 3 : injection via l'expression de filtre CQL

L'attaquant soumet une requête de filtre OGC contenant un appel jsonArrayContains avec une charge utile non échappée, injectée directement dans la requête SQL générée côté serveur.

Étape 4 : exécution SQL arbitraire et pivot vers RCE

Selon la configuration du data store et les privilèges du compte de service GeoServer, l'injection permet l'extraction de données, la modification de la base, voire l'exécution de code arbitraire côté serveur lorsque le moteur de base de données autorise l'exécution de commandes système ou de fonctions étendues.

Indicateurs de compromission

TypeValeur
Comportement réseauVolume anormal de requêtes OGC WMS/WFS contenant des expressions de filtre CQL avec appels à jsonArrayContains, depuis un nombre restreint de sources
Journal applicatifErreurs SQL inhabituelles ou codes retour anormaux dans les logs GeoServer corrélés à des requêtes de filtre
Journal base de donnéesRequêtes SQL générées contenant des fragments non conformes aux gabarits habituels de filtre OGC

Les sources publiques consultées ne publient pas d'adresses IP nominatives associées à la campagne de scan initiale ; la recommandation opérationnelle reste la corrélation de logs multi-couches (GeoServer, serveur web, base de données, pare-feu) plutôt qu'un blocage par IOC statique.

MITRE ATT&CK

TactiqueTechniqueIDJustification
Initial AccessExploit Public-Facing ApplicationT1190L'injection cible directement une interface OGC exposée publiquement sans authentification
ExecutionCommand and Scripting InterpreterT1059Le pivot vers RCE, quand il est possible, s'appuie sur l'exécution de commandes via le moteur de base de données
DiscoveryNetwork Service DiscoveryT1046Le scan de masse observé dans les heures suivant la divulgation vise à identifier les instances vulnérables exposées

Cette cartographie est une lecture technique construite à partir du comportement documenté par les chercheurs ayant analysé la faille ; aucune attribution officielle d'acteur ou de groupe n'est disponible dans les sources consultées.

Remédiation : checklist opérationnelle

  1. Recenser en urgence toutes les instances GeoServer exposées, notamment celles utilisant un data store PostGIS ou Oracle JDBC.
  2. Mettre à jour vers GeoServer 3.0.1, 2.28.5 ou 2.27.6 selon la branche déployée, avec les versions GeoTools correspondantes.
  3. Restreindre l'accès public aux interfaces WMS/WFS via VPN, reverse proxy ou liste blanche d'adresses IP, y compris après application du correctif.
  4. Appliquer des règles WAF filtrant les paramètres de filtre CQL suspects en attendant la mise à jour complète du parc.
  5. Appliquer le principe du moindre privilège aux comptes de service de base de données utilisés par GeoServer, sans droits administratifs superflus.
  6. Auditer les journaux GeoServer, serveur web, base de données et pare-feu à la recherche d'erreurs SQL, de processus enfants inattendus ou de connexions sortantes suspectes.
  7. Revalider la configuration après correctif, la régression de 2023 rappelant qu'un correctif ponctuel sur une fonction ne garantit pas l'absence de réintroduction future.

Sources

Tags : GHSA-mqjf-5f49-2fjhGeoServerjsonArrayContainsSQL injectionCVE-2023-25158PostGISRCE pré-authentification
Partager cet article