Pwncloud : votre propre cloud (non) sécurisé
OwnCloud est un logiciel libre offrant une plateforme de services de stockage et partage de fichiers et d'applications diverses en ligne. Il est présenté comme une alternative à Dropbox, lequel est basé sur un cloud public. Or, comme tous les logiciels il souffre de vulnérabilité.

☁️ Pwncloud : votre propre cloud (non) sécurisé
1, 2 et 3 vulnérabilités critiques
OwnCloud est un logiciel libre offrant une plateforme de services de stockage et partage de fichiers et d’applications diverses en ligne. Il est présenté comme une alternative à Dropbox, lequel est basé sur un cloud public.
Fin novembre 2023, OwnCloud publiait 3 articles concernant 3 vulnérabilités critiques :
La CVE-2023-49103 :
- Score CVSS de 10 ! 😱
- Divulgation d’informations d’identification et de configuration sensibles dans des déploiements conteneurisés.
- https://owncloud.com/security-advisories/disclosure-of-sensitive-credentials-and-configuration-in-containerized-deployments/
La CVE-2023-49105 :
- Score CVSS de 9.8 😨
- Lecture et écriture de fichiers via un contournement de l’authentification de l’Api WebDAV.
- https://owncloud.com/security-advisories/webdav-api-authentication-bypass-using-pre-signed-urls/
La CVE-2023-49104 :
- Score CVSS de 9.0
- Contournement de la validation de sous-domaine impactant oauth2.
- https://owncloud.com/security-advisories/subdomain-validation-bypass/
CVE-2023-49103

La CVE-2023-49103 est surement la vulnérabilité la plus facilement exploitable des trois. Mais pas forcément la plus sévère !
En bref
Quelques explications pour rapidement comprendre la vulnérabilité :
- L’application “graphapi” s’appuie sur une bibliothèque tierce vulnérable (graphapi 0.2.0 – 0.3.0).
- Cette bibliothèque divulgue les détails de configuration de l’environnement PHP (phpinfo) 🤣
- On y retrouve des données sensibles telles que le mot de passe de l’administrateur d’ownCloud, le serveur de messagerie, etc.
A retenir
- Désactiver l’application graphapi n’élimine pas la vulnérabilité (ça serait trop simple sinon 😂)
- Affecte aussi les environnements non conteneurisés.
- Les conteneurs Docker datant d’avant février 2023 ne sont pas vulnérables.
Les protections
Comment se protéger de cette vulnérabilité ? Il existe plusieurs méthodes :
- Supprimer le fichier
owncloud/apps/graphapi/vendor/microsoft/microsoft-graph/tests/GetPhpInfo.php. - Désactiver la fonction
phpinfosi possible. - Modifier les secrets suivants
- Mot de passe administrateur ownCloud
- Identifiants du serveur de messagerie
- Identifiants de la base de données
- Clé d’accès au magasin d’objets/S3
PoC
Un PoC est disponible pour détecter la présence du fichier GetPhpInfo.php : https://github.com/creacitysec/CVE-2023-49103/blob/main/exploit.py
| |
Schéma
Ci-dessous un schéma récapitulatif de l’attaque :

CVE-2023-49105

Quelques rappels concernant la vulnérabilité CVE-2023-49105 :
- Le score CVSS est de 9.8 😨.
- Il est possible de lire, écrire et supprimer des fichiers en contournant l’authentification de l’Api WebDAV.
Ambionics a sorti un très bon article sur ce sujet : https://www.ambionics.io/blog/owncloud-cve-2023-49103-cve-2023-49105
En bref
En résumé, il existe 2 scénarios d’exploitation possibles :
- Scénario anonyme : récupérer tous les fichiers de n’importe quel compte en étant anonyme.
- Scénario authentifié : élever ses privilèges de simple utilisateur en tant qu’administrateur afin d’exécuter des commandes.
👇 Un PoC est disponible sur GitHub et juste en dessous
| |
Etude du scénario le plus probable : scénario anonyme
Le scénario le plus probable de se produire est celui anonyme. Il est aussi le plus simple à expliquer et à exploiter contrairement au second.
Les grandes lignes de l’attaque :
- L’attaquant accéde au service
WebDAVprésent sur/remote.php/dav.WebDAVest une extension deHTTPet permet de simplifier la gestion de fichiers avec des serveurs distants. - OwnCloud autorise l’authentification à partir d’un username et d’une clef de signature.
- Par défaut, la clef définie est VIDE (!!!) 😱
- L’attaquant usurpe l’identité de n’importe quel utilisateur juste en connaissant le nom d’utilisateur.
- L’attaquant accède au
WebDAVet consulte/modifie/supprime n’importe quel fichier 😭
Etude du scénario le moins probable : scénario authentifié
Ce scénario est moins probable car il nécessite un compte authentifié. Il est plus complexe à mettre en place et permet une exécution de commande. Comme vu précédemment, il est possible d’utiliser la signature vide de n’importe quel utilisateur. Or, il est impossible d’accéder aux fonctionnalités de l’utilisateur et de l’administrateur avec. Un contournement est alors possible !
Dans les grandes lignes :
- L’attaquant s’authentifie en tant que simple utilisateur.
- L’attaquant rajoute un entête Authorization invalide à ses requêtes. Exemple : Authorization: token thisisnotavalidtoken
- L’attaquant s’authentifie avec un username usurpé et sa clef de signature.
- L’attaquant change la valeur user_id par admin pour monter en privilège (oui je sais sans le code sous les yeux ce n’est pas clair)
- Un administrateur OwnCloud possède des fonctionnalités pour exécuter des commandes.
👇 Ci-dessous, une vidéo réalisée par Charles Fol, le rédacteur de l’article concernant le scénario anonyme. Patchez vos instances !
CVE-2023-49104

Selon OwnCloud, un attaquant est capable de contourner le code de validation oAuth2 via une URL particulière. Une étude est actuellement en cours sur cette vulnérabilité et des explications devront venir dans les jours à venir.