Le 25 octobre 2026, NVD a publié CVE-2026-116207, une injection SQL sans authentification dans YesWiki, le wiki libre très utilisé par les associations, collectifs et collectivités, en particulier dans l'espace francophone.
La faille touche l'API publique de recherche des fiches Bazar, le module de bases de données de YesWiki. Elle permet de lire le contenu de la base, dont les empreintes de mots de passe des utilisateurs, ou de saturer le serveur de base de données. Et elle tient dans un détail d'échappement que beaucoup de développeurs PHP croient sans risque.
La vulnérabilité
| Champ | Valeur |
|---|---|
| CVE | CVE-2026-116207 |
| CVSS 3.1 (VulnCheck) | 9.1 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H |
| CVSS 4.0 (VulnCheck) | 8.8 (HIGH) |
| Type | Injection SQL (CWE-89) |
| Authentification | Aucune |
| Composant | SearchManager::prepareSearchRequest(), API de recherche Bazar |
| Publication NVD | 2026-10-25 |
| Statut NVD | Deferred (pas d'analyse NIST) |
Les scores sont ceux de VulnCheck (CNA). NVD a placé l'entrée en statut Deferred et n'y a attaché aucune configuration CPE. La CVE n'est pas au catalogue CISA KEV à la date de rédaction.
Le vecteur 3.1 se lit simplement : exploitable à distance, sans compte, sans interaction, avec un impact élevé sur la confidentialité (lecture de la base) et la disponibilité (épuisement des connexions), mais pas sur l'intégrité (I:N).
Le mécanisme : mysqli_real_escape_string dans des backticks
L'API de recherche Bazar accepte deux paramètres, query et searchfields, qui contiennent des noms de champs. Ces noms sont insérés dans la requête SQL comme alias entre backticks (`nom_du_champ`), et la seule protection appliquée est mysqli_real_escape_string.
Le problème : cette fonction est faite pour les valeurs entre apostrophes. Elle échappe les guillemets simples et doubles, les antislashs, les retours à la ligne… mais pas le backtick. Un attaquant qui glisse un backtick dans un nom de champ referme l'alias et écrit la suite de la requête lui-même.
D'après la description NVD, cela permet :
- d'injecter des sous-requêtes et de lire des données, par exemple les empreintes de mots de passe des comptes ;
- d'épuiser les threads de la base avec des appels
SLEEP(), ce qui rend le wiki indisponible.
C'est une leçon qui dépasse YesWiki : un identifiant SQL (nom de colonne, de table, alias) ne s'échappe pas comme une valeur. La bonne pratique est une liste blanche des noms autorisés, jamais un échappement.
Ce qu'implique la lecture des empreintes
Une empreinte de mot de passe n'est pas un mot de passe. Mais sur un wiki associatif, les comptes administrateurs ont souvent des mots de passe courts ou réutilisés ailleurs : une fois les empreintes récupérées, le cassage hors ligne est une question de temps. C'est une déduction, pas un fait rapporté par NVD. Si ton instance a été exposée, considère les mots de passe comme compromis.
Versions affectées
| Branche | Versions affectées | Première version hors plage (description NVD) |
|---|---|---|
| 4.x | 4.6.0 et suivantes, avant 4.7.0 | 4.7.0 |
| 5.0 (pré-versions) | 5.0.0-alpha1 à alpha3 | 5.0.0-alpha4 |
Ces bornes viennent de la description NVD, pas d'une configuration CPE. Vérifie la version recommandée dans les advisories GitHub du projet YesWiki (deux advisories sont référencés : GHSA-ccp2-6q93-hggh et GHSA-hgxv-w4r8-8877) avant de considérer une instance comme corrigée.
Détection
- Version : la version de YesWiki est indiquée dans la page de mise à jour de l'interface d'administration.
- Journaux du serveur web : requêtes vers l'API de recherche Bazar dont les paramètres
queryousearchfieldscontiennent des backticks (encodés%60), des mots-clés SQL (SELECT,UNION) ouSLEEP. - Base de données : pics de connexions ou de requêtes longues, threads MySQL/MariaDB en attente sur
SLEEP. - Comptes : connexions administrateur inhabituelles après une période suspecte.
Mitigation
- Mettre à jour vers 4.7.0 ou une version ultérieure (ou au-delà de 5.0.0-alpha4 si tu testes la branche 5).
- À défaut, bloquer temporairement au niveau du serveur web ou du WAF les requêtes vers l'API Bazar contenant un backtick dans
queryousearchfields. - Limiter les droits du compte MySQL utilisé par YesWiki à sa seule base.
- Si l'instance a été exposée : faire changer les mots de passe des comptes, en priorité administrateurs.
Pourquoi surveiller en continu vos applications auto-hébergées
YesWiki est typiquement le genre d'outil installé par un bénévole ou un service communication, hors de l'inventaire de la DSI. C'est aussi pour cela que ses failles restent ouvertes longtemps.
Avec cveo.tech, inventorie aussi les applications web auto-hébergées, et reçois une alerte dès qu'une CVE les concerne, même quand NVD ne l'a pas encore analysée.