
Un utilisateur disposant des droits EditOwnPosts sur le CMS BlogEngine.NET (version 3.3.8.0 et antérieures) a la capacité de téléverser un fichier malveillant vers un emplacement codé en dur.
Une requête POST vers le point de terminaison /api/upload avec les paramètres « action=video », comme illustré dans la capture d'écran ci-dessous, déclenche un processus de téléversement de fichier.

L'application vérifie d'abord si l'utilisateur dispose des droits EditOwnPosts pour procéder au téléversement de la vidéo ; sinon, l'application génère une erreur.
Comme le montre la capture d'écran ci-dessous, aux lignes 101 et 105, l'application définit un emplacement codé en dur pour les fichiers téléversés. Ensuite, elle appelle une fonction nommée UploadVideo (à la ligne 107).

La fonction UploadVideo vérifie si le répertoire cible existe, le crée s'il n'existe pas, et enregistre le fichier dans ce répertoire.

Comme le montre la capture d'écran ci-dessous, elle déplace le fichier malveillant vers le répertoire codé en dur. La requête du fichier téléversé conduit à une exécution de code à distance (RCE).
