MyTube présente un verrouillage de compte non authentifié via un état de tentative de connexion partagé
Plateforme
other
Composant
mytube
Corrigé dans
1.8.72
MyTube est un téléchargeur et lecteur auto-hébergé pour plusieurs sites web de vidéos. Avant la version 1.8.72, un attaquant non authentifié peut verrouiller les comptes administrateur et visiteur de l'authentification par mot de passe en déclenchant des tentatives de connexion infructueuses. L'application expose trois points de terminaison de vérification de mot de passe, qui sont tous accessibles publiquement. Ces trois points de terminaison partagent un seul état de tentative de connexion basé sur un fichier stocké dans `login-attempts.json`. Lorsque l'un des points de terminaison enregistre une tentative d'authentification infructueuse via `recordFailedAttempt()`, l'état de tentative de connexion partagé est mis à jour, ce qui augmente le compteur `failedAttempts` et ajuste les horodatages et les valeurs de temporisation associés. Avant de vérifier un mot de passe, chaque point de terminaison appelle `canAttemptLogin()`. Cette fonction vérifie le fichier JSON partagé pour déterminer si une période de temporisation est active. Si la temporisation n'a pas expiré, la requête est rejetée avant que le mot de passe ne soit validé. Étant donné que le compteur de tentatives infructueuses et le temporisateur de temporisation sont partagés globalement, les tentatives d'authentification infructueuses sur n'importe quel point de terminaison affectent tous les autres points de terminaison. Un attaquant peut exploiter cela en envoyant à plusieurs reprises des requêtes d'authentification non valides à l'un de ces points de terminaison, incr
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