
Analyse technique et avis de sécurité pour CVE-2026-48908 : Téléversement arbitraire de fichiers non authentifié conduisant à une exécution de code à distance (RCE) dans JoomShaper SP Page Builder.
Une analyse technique complète d'une vulnérabilité d'exécution de code à distance non authentifiée.
CVE-2026-48908 est une vulnérabilité de sécurité critique identifiée dans l'extension JoomShaper SP Page Builder pour Joomla. La vulnérabilité réside dans un point de terminaison non protégé qui accepte les téléversements fournis par l'utilisateur sans valider l'autorisation de l'utilisateur ni restreindre efficacement les extensions de fichiers.
Une exploitation réussie permet à des attaquants distants non authentifiés d'écrire des fichiers exécutables dans des répertoires web publics, aboutissant à une compromission totale du serveur (exécution de code à distance).
[!NOTE] Cette découverte de vulnérabilité est le point culminant de 6 à 7 mois de recherche en sécurité dédiée, d'audit de code source et de cartographie du comportement des protocoles au sein des extensions CMS.
timeline
title Disclosure Lifecycle
2026 Q1 : Source Code Auditing & Identification
: Edge-case Analysis & Flow Tracing
2026 Q2 : Proof-of-Concept Validation
: Responsible Vendor Disclosure
2026 Q3 : Patch Verification
: Public Advisory & CVE Registration
Le diagramme ci-dessous illustre le flux opérationnel de la faille, de l'initiation de la requête à l'exécution :
sequenceDiagram
autonumber
actor Attacker as Remote Attacker
participant Endpoint as Upload Controller
participant Storage as Public Storage
participant Server as Web Server Process
Attacker->>Endpoint: POST request with malicious payload (No Auth)
Note over Endpoint: Missing Authorization Check<br/>& Loose MIME Validation
Endpoint->>Storage: Writes file to public path (/images/...)
Endpoint-->>Attacker: Returns success response & file path
Attacker->>Storage: GET request to uploaded file
Storage->>Server: Executes server-side code
Server-->>Attacker: Command execution output returned
Le point de terminaison du contrôleur gérant les téléversements de fichiers multipart ne dispose pas de contrôles de privilèges explicites (JFactory::getUser()->authorise()) et n'exige pas de jetons de session Anti-CSRF valides. Par conséquent, les requêtes HTTP non authentifiées atteignent la logique centrale d'écriture de fichiers.
La logique de téléversement repose sur des en-têtes fournis par le client ou des contrôles d'extension permissifs plutôt que sur une liste blanche stricte côté serveur. Cela permet à des extensions de scripts exécutables d'être enregistrées dans des répertoires configurés pour l'exécution web.
[!IMPORTANT] Les administrateurs utilisant des versions affectées doivent mettre à jour immédiatement vers la version corrigée et appliquer des politiques d'exécution au niveau du serveur.
# Block script execution in writable media directories
location ~* ^/images/.*\.php$ {
deny all;
return 403;
}
.htaccess# Disable PHP execution inside upload paths
<Directory "/var/www/html/images">
<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
</Directory>
Avertissement : Ce dépôt est publié strictement à des fins éducatives, défensives et d'audit de sécurité.
| Paramètre | Détails |
|---|
| Type de vulnérabilité | Téléversement arbitraire de fichier non authentifié (CWE-434) |
| Score CVSS v3.1 | 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Niveau d'impact | Critique (Exécution de code à distance / Prise de contrôle totale du système) |
| Vecteur d'accès | Réseau / Distant (Aucune authentification requise) |