veilletech.fr
2 oct. Feed du jour
#01 SÉCURITÉ Faille

WordPress : huit copies, et la porte dérobée revient

Un fichier supprimé n'est pas une infection supprimée.

Sucuri documente SC, une porte dérobée WordPress répartie dans au moins huit emplacements — .user.ini, db.php, advanced-cache.php, thème, mu-plugins, base de données, mémoire partagée System V — dont chacun reconstruit les autres : nettoyer les fichiers ne suffit pas, la requête suivante restaure tout. En parallèle, une injection SQL sans authentification dans wpForo (CVE-2026-1581, jusqu'à 2.4.14 incluse) est exploitée.

3 min de lectureintermédiairevidéo 1:20
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Huit emplacements, chacun capable de rebâtir les autres
  3. Ce que l'attaquant obtient
  4. Comment s'y prendre
  5. wpForo, exploité en parallèle
  6. À retenir

Ce qui se passe

Gabriel Barbosa, chercheur chez Sucuri, a disséqué une compromission WordPress dont la charge finale revient seule après chaque nettoyage, sans que l'attaquant ait à réinfecter le site. La porte dérobée a été baptisée SC, d'après les marqueurs SC_ qu'elle laisse dans le contenu injecté. Son code ne porte aucun nom de fonction lisible : un décodeur le reconstitue à l'exécution, par simple substitution de caractères.

Huit emplacements, chacun capable de rebâtir les autres

Emplacement Rôle
.user.ini fixe auto_prepend_file : un chargeur passe avant chaque requête PHP de l'arborescence
wp-content/c1b12371.php chargeur, qui inclut le fichier caché voisin s'il existe
wp-content/.c1b12371.php premier étage : rebâtit l'extension dans mu-plugins depuis une copie dans plugins, une ébauche encodée dans le cache ou une archive ZIP au nom hexadécimal aléatoire
wp-content/db.php chargé au démarrage, porte toute la charge compressée en Base64 et la redéploie si elle manque ou semble tronquée
wp-content/advanced-cache.php chargé avant les extensions quand le cache est actif ; cinq sources de reconstruction, dont la base et la mémoire partagée
wp-content/themes/khorshidi/functions.php jumeau de db.php, côté thème
wp-content/mu-plugins/hyper-engine-kit.php la charge, en extension obligatoire
wp-content/plugins/hyper-engine-kit/hyper-engine-kit.php la même, en extension classique
Requête PHP.user.iniChargeur cachédb.phpadvanced-cache.phpThèmeBaseMémoire partagéehyper-engine-kit
Plusieurs chemins mènent à la même extension : en couper un ne suffit pas

Le segment de mémoire partagée System V est le maillon le plus sournois. Identifié par une clé numérique fixe, il vit en RAM : il survit à la suppression des fichiers comme au nettoyage de la base, et sur un hébergement mutualisé il peut appartenir à un autre compte. Des tâches cron, dont certaines aux noms aléatoires, relancent aussi le redéploiement à heure fixe, même sans visiteur.

Ce que l'attaquant obtient

Une fois active, la charge se masque de l'écran des extensions et des vérifications de mise à jour, crée un administrateur caché et prend ses ordres via la blockchain Ethereum. Elle peut ensuite injecter du JavaScript chez les visiteurs — un skimmer de paiement, par exemple —, exécuter du PHP arbitraire et désactiver ou supprimer des extensions.

Comment s'y prendre

On ignore encore comment SC entre. Les vecteurs habituels restent en tête de liste : faille d'extension ou de thème, mot de passe faible, extension compromise en amont, envoi de fichiers mal filtré.

Terminal
find . -name '.user.ini' -exec grep -H auto_prepend_file {} \;
find wp-content -maxdepth 1 -name '.*.php'
ls -la wp-content/db.php wp-content/advanced-cache.php wp-content/mu-plugins/
  1. db.php et advanced-cache.php sont aussi des drop-ins légitimes de certaines extensions de cache ou de base : comparer avec celle qui est censée les avoir posés.
  2. Lister les comptes administrateurs et les événements cron de WordPress.
  3. Sur un serveur que vous administrez, ipcs -m liste les segments de mémoire partagée ; sur un mutualisé, il faut passer par l'hébergeur.
  4. Tout retirer dans la même opération : une copie oubliée rétablit les autres à la requête suivante.

wpForo, exploité en parallèle

L'extension de forum wpForo souffre d'une injection SQL sans authentification, CVE-2026-1581 (CVSS 7.5), sur toutes les versions jusqu'à la 2.4.14 incluse. D'après la télémétrie de Previdian, moins de 20 tentatives ont été vues depuis le 3 juillet 2026, depuis cinq adresses situées en Bulgarie, en Suisse, en France, aux États-Unis et au Yémen. Vérifiez que votre version est postérieure à la 2.4.14.

Source : WordPress Backdoor Rebuilds Itself After Cleanup Using Files, Database, and Shared Memory, The Hacker News, 1er octobre 2026, d'après l'analyse de Sucuri.