Threat Intelligence

GeoServer jsonArrayContains : le zero-day SQLi sans CVE que watchTowr voit déjà sondé à l'échelle d'Internet

Admin CyberAfrik 14 August 2026 4 lectures
GeoServer jsonArrayContains : le zero-day SQLi sans CVE que watchTowr voit déjà sondé à l'échelle d'Internet

Rapport CTI technique du 14 août 2026

Résumé exécutif

Un chercheur connu sous le pseudonyme @q1uf3ng a publié le 12 août 2026 à 10h46 UTC les détails d'une injection SQL non authentifiée dans la fonction jsonArrayContains de GeoServer, la plateforme open source de diffusion de données géospatiales maintenue par l'OSGeo. Le défaut touche le traitement des filtres OGC (WFS, WMS) et permet, lorsque le backend est un Microsoft SQL Server configuré avec le compte sa, d'atteindre l'exécution de commandes sur le serveur. Aucun identifiant CVE n'a été attribué à l'heure de la rédaction, et aucun correctif officiel n'a été publié par le projet GeoServer.

watchTowr indique avoir observé des tentatives d'exploitation dans les heures suivant la divulgation publique, avec plusieurs centaines de requêtes provenant d'un nombre restreint d'adresses IP. Pour l'instant, ces tentatives ressemblent à du sondage automatisé qui déclenche des erreurs sans aller plus loin, mais le produit a un lourd passif d'exploitation à grande échelle : GeoServer figure à plusieurs reprises au catalogue CISA KEV, notamment pour CVE-2024-36401 qui avait servi à bâtir des réseaux de cryptominage, de proxys résidentiels et d'attaques DDoS. Les équipes exposant des instances GeoServer sur Internet doivent traiter ce signal comme une fenêtre de tir avant la généralisation de payloads fonctionnels.

Chronologie

DateÉvénement
12 août 2026, 10:46 UTCDivulgation publique du mécanisme d'injection par le chercheur @q1uf3ng sur X
12 août 2026 (heures suivantes)watchTowr observe les premières tentatives d'exploitation, décrites comme des sondes automatisées
13 août 2026The Hacker News relaie l'alerte ; plusieurs centaines de tentatives recensées depuis un nombre restreint d'IP
14 août 2026Aucun correctif officiel publié par le projet GeoServer/OSGeo à l'heure de la rédaction

Fiche vulnérabilité (format fiche CTI)

Sans CVE attribuée | CVSS non calculé officiellement | GeoServer, fonction jsonArrayContains

La fonction jsonArrayContains sert à filtrer des features dont un champ JSON contient une valeur donnée, via les paramètres CQL_FILTER ou Filter des requêtes OGC (WFS GetFeature, WMS). Le chercheur a démontré que l'entrée utilisateur passée à cette fonction n'est pas correctement paramétrée avant d'être injectée dans la requête SQL générée par le datastore JDBC. Un attaquant non authentifié disposant d'un accès réseau à l'endpoint OGC peut donc injecter des instructions SQL arbitraires (CWE-89). Sur un backend Microsoft SQL Server dont le compte de service dispose des droits sa, l'injection peut être enchaînée vers xp_cmdshell pour obtenir l'exécution de commandes système (CWE-78), transformant une SQLi en RCE complet.

Conditions d'exploitation : aucune authentification requise, accès réseau à l'endpoint WFS/WMS de l'instance GeoServer ciblée, présence d'un datastore vulnérable exposant jsonArrayContains (PostGIS, Oracle ou SQL Server selon la configuration). L'issue en RCE dépend spécifiquement d'un backend SQL Server avec des privilèges excessifs sur le compte applicatif.

PoC disponible : partiel. Le chercheur a publié le principe d'exploitation sur X sans livrer de script d'attaque complet et directement réutilisable ; watchTowr confirme que des tiers ont reconstruit un exploit fonctionnel suffisant pour sonder des cibles à grande échelle.

Patch/mitigation : pas de correctif à ce jour. Le projet GeoServer recommande, en l'absence de patch, de restreindre l'exposition publique des instances et de surveiller les canaux officiels pour un correctif à venir.

Diagramme de la chaîne d'attaque

Chaîne reconstruite à partir des éléments techniques publiés par @q1uf3ng et de l'analyse watchTowr relayée par The Hacker News.

Analyse technique

Étape 1 : reconnaissance et identification des cibles

Les opérateurs identifient les instances GeoServer exposées publiquement, généralement via des scans de masse sur les ports HTTP/HTTPS standard et la reconnaissance des chemins caractéristiques (/geoserver/wfs, /geoserver/ows). watchTowr rapporte que le trafic observé provient d'un nombre restreint d'adresses IP, cohérent avec une campagne de sondage centralisée plutôt qu'un botnet distribué.

Étape 2 : construction du payload CQL_FILTER

L'attaquant compose une requête WFS GetFeature (ou équivalent WMS) dans laquelle le paramètre CQL_FILTER invoque jsonArrayContains avec une valeur contenant une charge SQL. Comme la fonction ne paramètre pas correctement l'entrée avant de la transmettre au driver JDBC, la charge est interprétée comme du SQL exécutable par le backend.

Étape 3 : injection et énumération du backend

Une fois l'injection confirmée (généralement par des techniques d'erreur ou de temporisation), l'attaquant peut énumérer la structure de la base, extraire des données, ou tester le type de moteur SQL sous-jacent pour adapter la suite de la chaîne.

Étape 4 : élévation vers l'exécution de commandes

Si le backend est un Microsoft SQL Server et que le compte de service GeoServer dispose de privilèges sa, l'attaquant peut activer et invoquer xp_cmdshell via l'injection pour exécuter des commandes arbitraires dans le contexte du service SQL Server, généralement doté de privilèges élevés sur l'hôte.

Étape 5 : post-exploitation potentielle

Aucune preuve publique de post-exploitation (dépôt de malware, persistance, exfiltration) n'est disponible à ce stade : les tentatives documentées par watchTowr s'arrêtent au sondage. C'est une lecture prospective plutôt qu'une observation confirmée, mais la chaîne technique le permettrait sur une cible mal configurée.

Indicateurs de compromission

TypeValeur
Endpoint ciblé/geoserver/wfs, /geoserver/ows avec paramètre CQL_FILTER contenant jsonArrayContains
Comportement réseauVolume anormal de requêtes GET/POST vers les endpoints OGC depuis un nombre restreint d'IP source
Signal applicatifErreurs SQL renvoyées par le backend en réponse à des requêtes OGC malformées

Aucune liste d'adresses IP attaquantes ni de hash de payload n'a été publiée par watchTowr ou par le chercheur à l'origine de la divulgation ; ces IOC restent donc génériques faute de données confirmées et publiques.

MITRE ATT&CK

Aucune cartographie officielle n'a été publiée par un éditeur ou une agence pour cette campagne. Le tableau ci-dessous est une lecture technique construite à partir des éléments confirmés, pas une attribution vendeur.

TactiqueTechniqueIDJustification
ReconnaissanceActive Scanning: Vulnerability ScanningT1595.002watchTowr documente des sondes automatisées ciblant les endpoints GeoServer exposés publiquement
Initial AccessExploit Public-Facing ApplicationT1190La requête OGC malveillante cible directement le service GeoServer exposé, sans authentification préalable
ExecutionCommand and Scripting InterpreterT1059L'exécution de commandes via xp_cmdshell sur le backend SQL Server constitue l'étape d'exécution de la chaîne
ImpactData ManipulationT1565L'accès SQL direct permet la lecture, la modification ou la suppression de données, hypothèse cohérente avec l'accès obtenu mais non confirmée par une observation publique

Remédiation : checklist opérationnelle

  1. Recenser toute instance GeoServer exposée à Internet (Shodan, Censys, scan d'inventaire interne) et restreindre l'accès aux endpoints OGC (WFS/WMS/WPS) au strict nécessaire.
  2. Vérifier immédiatement les privilèges du compte de service utilisé par GeoServer sur la base de données backend ; s'assurer qu'il ne dispose pas des droits sysadmin/sa sur Microsoft SQL Server.
  3. Désactiver xp_cmdshell sur les instances SQL Server backend si la fonctionnalité n'est pas indispensable.
  4. Déployer une règle WAF ou IPS bloquant les paramètres CQL_FILTER contenant jsonArrayContains associés à des motifs SQL suspects (UNION, xp_cmdshell, --, ;).
  5. Mettre en place une surveillance des logs GeoServer et de la base de données pour détecter les tentatives de sondage et d'injection.
  6. Suivre les canaux officiels GeoServer/OSGeo et appliquer le correctif dès sa publication.
  7. En cas de doute sur une compromission, isoler l'instance et rechercher des traces d'exécution de commandes OS dans le contexte du compte SQL Server.

Sources

Tags : GeoServerjsonArrayContainsSQL injectionzero-dayRCExp_cmdshellwatchTowrCWE-89
Partager cet article