Aller au contenu
Blog

YesWiki · Bazar · SQL injection

YesWiki : injection SQL sans authentification dans l'API de recherche Bazar — CVE-2026-116207 (9.1)

CVE-2026-116207 (9.1, VulnCheck) : injection SQL sans authentification dans l'API publique de recherche Bazar de YesWiki. Mécanisme, versions et mesures.

4 min de lectureCVE-2026-116207

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é

ChampValeur
CVECVE-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)
TypeInjection SQL (CWE-89)
AuthentificationAucune
ComposantSearchManager::prepareSearchRequest(), API de recherche Bazar
Publication NVD2026-10-25
Statut NVDDeferred (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

BrancheVersions affectéesPremière version hors plage (description NVD)
4.x4.6.0 et suivantes, avant 4.7.04.7.0
5.0 (pré-versions)5.0.0-alpha1 à alpha35.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 query ou searchfields contiennent des backticks (encodés %60), des mots-clés SQL (SELECT, UNION) ou SLEEP.
  • 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

  1. 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).
  2. À défaut, bloquer temporairement au niveau du serveur web ou du WAF les requêtes vers l'API Bazar contenant un backtick dans query ou searchfields.
  3. Limiter les droits du compte MySQL utilisé par YesWiki à sa seule base.
  4. 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.

Chaque lundi

Les CVE critiques de la semaine, dans votre boîte mail

Un email par semaine : les vulnérabilités CVSS ≥ 9 publiées ces sept derniers jours, et nos dernières analyses. Rien d'autre.

Double confirmation par email. Désinscription en un clic, à tout moment.

Surveillez votre propre parc

Recherche CVE, inventaire de parc et alertes email, gratuitement.