Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-27621 — CVE-2026-27621 - TypiCMS Core présente une vulnérabilité de Cross-Site Scripting (XSS) stocké via le téléversement de fichiers SVG | Kitploit
Outils/GitHubGitHub/lukasz-rybak/cve-2026-27621
Analyse des VulnérabilitésExploitation d'Applications WebSécurité WebArticles et RechercheApprentissage et Éducation
GitHublukasz-rybak/cve-2026-27621

CVE-2026-27621

CVE-2026-27621 - TypiCMS Core présente une vulnérabilité de Cross-Site Scripting (XSS) stocké via le téléversement de fichiers SVG

Voir le dépôt
il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-27621 : TypiCMS Core présente une vulnérabilité de Cross-Site Scripting (XSS) stocké via le téléchargement de fichiers SVG

Présentation

ChampDétails
Identifiant CVECVE-2026-27621
SévéritéMoyenne
Avis de sécuritéVoir l'avis
Découvert parLukasz Rybak

Produits concernés

  • typicms/core (versions : < 16.1.7)

Classification CWE

  • CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Détails

I. Résumé

Une vulnérabilité de Cross-Site Scripting (XSS) stocké existe dans le module de téléchargement de fichiers de TypiCMS. L'application permet aux utilisateurs disposant des permissions de téléchargement de fichiers de téléverser des fichiers SVG. Bien qu'une validation du type MIME soit effectuée, le contenu du fichier SVG n'est pas assaini. Un attaquant peut téléverser un fichier SVG spécialement conçu contenant du code JavaScript malveillant. Lorsqu'un autre utilisateur (tel qu'un administrateur) consulte ou accède à ce fichier via l'application, le script s'exécute dans son navigateur, conduisant à la compromission de la session de cet utilisateur.

Le problème est aggravé par un bug dans la logique d'analyse SVG, qui peut provoquer une erreur 500 si le SVG téléversé ne contient pas d'attribut viewBox. Cependant, cela n'atténue pas la vulnérabilité XSS, car un attaquant peut facilement inclure un attribut viewBox valide dans sa charge utile malveillante.

II. Détails de la vulnérabilité

  • Type de vulnérabilité : Cross-Site Scripting (XSS) stocké (CWE-79)
  • Composant affecté : TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php et TypiCMS\Modules\Core\Services\FileUploader.php.
  • Versions affectées : <= 16.0.5

La vulnérabilité provient de deux points principaux :

  1. Validation permissive des fichiers : Le FileFormRequest autorise explicitement svg comme type MIME autorisé pour les téléversements.
  2. Absence d'assainissement du contenu : Le service FileUploader enregistre le fichier SVG sur le serveur sans analyser ni assainir son contenu afin de supprimer les éléments potentiellement malveillants tels que les balises <script> ou les gestionnaires d'événements on*.

Lorsque le disque du système de fichiers par défaut est défini sur public, le fichier SVG téléversé est stocké dans un répertoire accessible publiquement, ce qui permet de l'atteindre facilement via une URL directe et de déclencher la charge utile XSS.

III. Preuve de concept (PoC)

  1. Créer un fichier SVG malveillant : Créez un fichier nommé malicious.svg avec le contenu suivant. L'attribut viewBox est inclus pour contourner le bug d'analyse de l'application.

    root@kitploit:~
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
        <script>
            // A simple PoC to demonstrate the vulnerability
            alert('XSS in TypiCMS! Your session cookie is: ' + document.cookie);
        </script>
        <text x="10" y="50">If you see this, the script has run.</text>
    </svg>
    
  2. Téléverser le fichier malveillant :

    • Connectez-vous au panneau d'administration de TypiCMS en tant qu'utilisateur disposant des permissions de téléversement de fichiers.
    • Accédez au module « Fichiers » (par exemple, /admin/files).
    • Téléversez le fichier malicious.svg. L'application acceptera le fichier et le stockera. image
image
  1. Déclencher le XSS :
    • L'application fournira une URL publique pour le fichier téléversé, généralement au format http://<your-site>/storage/files/malicious.svg.
    • Toute personne qui accède à cette URL verra le JavaScript intégré s'exécuter dans son navigateur.
    • Un attaquant peut envoyer ce lien à un utilisateur privilégié (par exemple, un administrateur). Lorsque l'administrateur clique sur le lien, ses cookies de session peuvent être volés, ou l'attaquant peut effectuer des actions en son nom.
image image

IV. Impact

L'exploitation réussie de cette vulnérabilité permet à un attaquant d'exécuter du JavaScript arbitraire dans le contexte du navigateur de la victime. Bien que l'utilisation du drapeau HttpOnly sur les cookies de session empêche le vol direct de l'ID de session via document.cookie, l'attaquant peut néanmoins parvenir à une compromission totale du compte de la victime en effectuant des actions en son nom.

L'impact comprend :

  • Prise de contrôle du compte par falsification d'actions : Le script de l'attaquant peut effectuer des requêtes authentifiées vers l'API de l'application depuis le navigateur de la victime. Cela permet à l'attaquant d'effectuer toute action que la victime est autorisée à faire, comme :

    • Créer un nouveau compte administrateur pour l'attaquant.
    • Modifier l'adresse e-mail et le mot de passe de la victime.
    • Supprimer ou modifier tout le contenu, les utilisateurs et les paramètres.
  • Divulgation d'informations sensibles : Le script peut lire le contenu de toute page consultée par la victime dans le panneau d'administration. Cela inclut les listes d'utilisateurs (avec noms et e-mails), les paramètres privés de l'application et d'autres données sensibles, qui peuvent ensuite être exfiltrées vers un serveur contrôlé par l'attaquant.

  • Hameçonnage et ingénierie sociale : Le script peut manipuler l'interface du panneau d'administration pour afficher de faux formulaires de connexion afin d'inciter l'utilisateur à ressaisir ses identifiants, ou le rediriger vers un site Web malveillant.

  • Enregistrement des frappes clavier : Le script peut capturer toute information que la victime saisit dans les formulaires de la page compromise.

Parce que l'attaquant peut effectuer toute action en tant qu'administrateur authentifié, cette vulnérabilité mène effectivement à une compromission totale de l'application, même sans accès direct au cookie de session. Le risque est élevé.

V. Correctifs et mesures d'atténuation recommandés

Il est recommandé d'appliquer une approche de défense en profondeur pour atténuer cette vulnérabilité.

  1. Correctif principal : assainir le contenu SVG : La solution la plus robuste consiste à assainir les fichiers SVG lors du téléversement. Avant d'enregistrer le fichier, il doit être analysé pour supprimer tous les éléments potentiellement dangereux, notamment les balises <script>, <style>, <foreignObject> et tous les attributs d'événement on*. Cela peut être réalisé à l'aide d'une bibliothèque dédiée à l'assainissement des SVG.

  2. Correctif secondaire : désactiver les téléversements SVG : Si les téléversements SVG ne sont pas une fonctionnalité critique pour l'application, la solution la plus simple et la plus sûre consiste à les désactiver complètement. Cela peut être fait en supprimant 'svg' de la liste des types MIME autorisés dans TypiCMS\Modules\Core\Http\Requests\FileFormRequest.php.

    root@kitploit:~
    // In FileFormRequest.php
    // BEFORE:
    $fileRule = 'mimes:jpeg,gif,png,...,svg,...|max:...';
    
    // AFTER:
    $fileRule = 'mimes:jpeg,gif,png,...,pdf,...|max:...'; // Removed 'svg'
    
  3. Durcissement - Content-Security-Policy (CSP) : Implémentez un en-tête Content-Security-Policy (CSP) strict pour l'application. Un CSP bien configuré peut empêcher l'exécution de scripts en ligne, ce qui atténuerait l'impact de cette vulnérabilité XSS.

  4. Durcissement - servir le contenu utilisateur depuis un domaine séparé : Servez tous les fichiers téléversés par les utilisateurs depuis un domaine séparé, sans cookies. Il s'agit d'une mesure de sécurité très efficace qui isole le contenu généré par les utilisateurs de l'application principale, empêchant les scripts d'accéder aux cookies de session ou d'interagir avec le DOM de l'application.

Références

  • https://github.com/TypiCMS/Core/security/advisories/GHSA-xfvg-8v67-j7wp
  • https://nvd.nist.gov/vuln/detail/CVE-2026-27621
  • https://github.com/TypiCMS/Core/commit/d480a0be1e8e7c0600bb9a325bb11920ee66497d
  • https://github.com/advisories/GHSA-xfvg-8v67-j7wp

Avertissement

Cette CVE a été divulguée de manière responsable, conformément aux pratiques de divulgation coordonnée des vulnérabilités. Les informations fournies ici sont uniquement à des fins éducatives et défensives.

Télécharger l’outil