UNKNOWNCVE-2026-35393

goshs : Limitation incorrecte d’un nom de chemin vers un répertoire restreint (« Path Traversal ») dans le chargement multipart POST de goshs

Plateforme

go

Composant

github.com/patrickhener/goshs

Corrigé dans

1.1.5-0.20260401172448-237f3af891a9

### Résumé * Répertoire de chargement multipart POST non nettoyé | `httpserver/updown.go:71-174` Cette découverte affecte la configuration par défaut, aucun indicateur ni authentification n’est requis. ### Détails **Fichier :** `httpserver/updown.go:71-174` **Déclencheur :** `POST /<chemin>/upload` (server.go:49-51 vérifie `HasSuffix(r.URL.Path, "/upload")`) Le nom de fichier est nettoyé (barres obliques supprimées, ligne 105-106), mais le répertoire cible provient de `req.URL.Path` non nettoyé : ```go upath := req.URL.Path // non nettoyé targetpath := strings.Split(upath, "/") targetpath = targetpath[:len(targetpath)-1] // supprime le suffixe « upload » target := strings.Join(targetpath, "/") filenameSlice := strings.Split(part.FileName(), "/") filenameClean := filenameSlice[len(filenameSlice)-1] // nom de fichier nettoyé finalPath := fmt.Sprintf("%s%s/%s", fs.UploadFolder, target, filenameClean) ``` La route exige que l’URL se termine par `/upload`. Un attaquant utilise un chemin comme `/../../target_dir/upload`, le suffixe satisfait le routage, et `../..` s’échappe de la racine Web. Le nom de fichier sur le disque est contrôlé par l’attaquant via le champ `filename` multipart (après l’extraction du nom de base). **Impact :** U

Comment corriger

Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.

Surveillez vos dépendances automatiquement

Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.

Commencer gratuitement