
Recherche de sécurité et divulgation de vulnérabilités pour l'application ownCloud ONLYOFFICE Integration, incluant l'analyse technique, les PoC, l'impact et la remédiation.
CWE-307 : Restriction inappropriée des tentatives d'authentification excessives Gravité
CVSS v3.1 : 8.1 (Élevée)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Le score reflète l'impact observé lors des tests du flux d'authentification affecté.
Owncloud version 10.16.3
Le point de terminaison WebDAV affecté accepte les identifiants d'authentification via l'en-tête HTTP Authorization: Basic.
Exemple de requête :
GET /remote.php/webdav/ HTTP/1.1 Host: target.example Authorization: Basic <BASE64(username:password)>
La valeur Base64 représente :
username:password
Les échecs d'authentification répétés sur le même compte ne déclenchent pas les mécanismes de protection contre les attaques par force brute attendus.
Lors des tests, plusieurs tentatives d'authentification invalides consécutives ont été soumises sans observer :
De limitation de débit
De délais d'authentification progressifs
De verrouillage temporaire du compte
De réponse HTTP 429 Too Many Requests
Une tentative d'authentification ultérieure utilisant des identifiants valides a néanmoins été acceptée.
Étape 1 — Accéder au flux d'authentification WebDAV
S'authentifier auprès d'ownCloud et obtenir l'accès à un document/partage privé qui utilise le flux d'authentification WebDAV affecté.
Lors de l'accès au point de terminaison affecté, le serveur présente un défi d'authentification HTTP Basic.
Étape 2 — Observer la requête d'authentification
Les identifiants sont transmis via l'en-tête HTTP Authorization :
Authorization: Basic <BASE64(username:password)>
Étape 3 — Effectuer des tentatives d'authentification répétées
À l'aide d'un compte de test contrôlé, soumettre de manière répétée des requêtes d'authentification contenant des mots de passe invalides.
Exemple d'identifiants de test :
testuser:incorrect-password-01 testuser:incorrect-password-02 testuser:incorrect-password-03 ...
Les requêtes peuvent être reproduites à l'aide de Burp Suite Intruder ou d'un autre outil de test HTTP.
Étape 4 — Observer le comportement du serveur
Après plusieurs tentatives d'authentification échouées consécutives, le serveur continue d'accepter les requêtes d'authentification sans appliquer de mécanisme efficace de protection contre les attaques par force brute.
Aucun verrouillage temporaire, délai progressif, limitation de débit ou réponse HTTP 429 Too Many Requests n'est observé.
Étape 5 — Vérifier l'authentification réussie
Une requête ultérieure utilisant les identifiants corrects est acceptée normalement.
Cela démontre que les échecs d'authentification répétés ne restreignent pas suffisamment les tentatives ultérieures de devinette de mot de passe via le mécanisme d'authentification WebDAV affecté.
Une courte vidéo de PoC démontrant le test complet est incluse avec cette recherche.
Un attaquant capable d'atteindre le point de terminaison d'authentification WebDAV affecté peut tenter de manière répétée des mots de passe contre des comptes utilisateurs sans rencontrer de protections efficaces contre les attaques par force brute au niveau applicatif.
Une devinette de mot de passe réussie pourrait entraîner un accès non autorisé au compte ownCloud ciblé et à ses ressources associées, selon les privilèges et permissions de ce compte.
La vulnérabilité augmente donc la faisabilité d'attaques par devinette de mot de passe en ligne contre les comptes exposés via le flux d'authentification affecté.
Un problème similaire a déjà été signalé dans un produit Nextcloud connexe et attribué :
CVE-2023-32319
Référence :
HackerOne Report #1879549
Cette référence est fournie à des fins de comparaison du problème de protection contre les attaques par force brute liées à l'authentification et n'implique pas que les deux vulnérabilités soient identiques.
Le flux d'authentification WebDAV devrait être intégré au mécanisme de protection contre les attaques par force brute existant de l'application.
Les contrôles recommandés comprennent :
Suivre les tentatives d'authentification échouées pour chaque compte et/ou source.
Appliquer des délais progressifs après des échecs d'authentification répétés.
Imposer un nombre maximal configurable de tentatives échouées consécutives.
Rejeter temporairement les tentatives d'authentification ultérieures une fois le seuil configuré atteint.
Retourner HTTP 429 Too Many Requests lorsque la limitation de débit est déclenchée.
Appliquer la protection de manière cohérente sur tous les mécanismes d'authentification, y compris l'authentification HTTP Basic utilisée par WebDAV.
Veiller à ce que des mécanismes d'authentification ou des points de terminaison alternatifs ne puissent pas être utilisés pour contourner la protection existante de l'application contre les attaques par force brute.
Une politique possible pourrait consister à restreindre temporairement l'authentification après un nombre configurable d'échecs consécutifs, par exemple 10 tentatives. Le seuil exact et la période de restriction doivent être déterminés en fonction des exigences de sécurité de l'application.
ownCloud Server : https://github.com/owncloud/core
Vulnérabilité associée : CVE-2023-32319
Rapport HackerOne #1879549 : https://hackerone.com/reports/1879549
Hoang126 au nom de l'équipe de sécurité d'ETC JSC
Recherche en sécurité et divulgation responsable.
Cette recherche a été menée à des fins de tests de sécurité et de divulgation responsable.
Les tests ont été effectués dans un environnement contrôlé. Aucun accès non autorisé à des comptes ou des données de tiers n'a été effectué.