Les points de terminaison Media de @tinacms/graphql peuvent s'échapper de la racine Media via des liens symboliques ou des jonctions
Plateforme
nodejs
Composant
@tinacms/graphql
## Résumé `@tinacms/cli` a récemment ajouté des vérifications lexicales de traversée de chemin aux routes média de développement, mais l'implémentation ne valide toujours que la chaîne de chemin et ne résout pas les cibles des liens symboliques ou des jonctions. Si un lien existe déjà sous la racine média, Tina accepte un chemin comme `pivot/written-from-media.txt` comme étant « à l'intérieur » du répertoire média et effectue ensuite de véritables opérations sur le système de fichiers via cette cible de lien. Cela permet de lister les médias hors de la racine et d'y accéder en écriture, et la même cause fondamentale affecte également la suppression. ## Détails Les gestionnaires de médias de développement valident les chemins contrôlés par l'utilisateur avec : ```ts function resolveWithinBase(userPath: string, baseDir: string): string { const resolvedBase = path.resolve(baseDir); const resolved = path.resolve(path.join(baseDir, userPath)); if (resolved === resolvedBase) { return resolvedBase; } if (resolved.startsWith(resolvedBase + path.sep)) { return resolved; } throw new PathTraversalError(userPath); } function resolveStrictlyWithinBase(userPath: string, baseDir: string): string { const resolvedBase = path.resolve(baseDir) + path.sep; const resolved = path.resolve(path.join(baseDir, userPath)); if (!resolved.startsWith(resolvedB
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