Référence des ports
Port 5984 (TCP) – Apache CouchDB
Port par défaut de l'API HTTP/REST d'Apache CouchDB, utilisée pour stocker et interroger des documents JSON.
État par défaut
Les anciennes versions de CouchDB tournaient en mode « admin party » sans administrateur ni authentification, et pouvaient se lier à 0.0.0.0 ; quiconque atteignait 5984 avait donc un accès total en lecture/écriture/administration.
Attaques courantes
- Accès REST non authentifié (« admin party ») pour lire, modifier ou supprimer toutes les bases
- CVE-2017-12635 : escalade de privilèges pour obtenir l'administration via un JSON de rôle forgé
- CVE-2017-12636 : exécution de code à distance via abus de config/query server
- Attaques par rançon effaçant les bases et laissant une note de paiement
Durcissement
- Créer un administrateur et désactiver le mode admin party ; exiger l'authentification
- Lier à localhost ou à une interface privée ; ne jamais exposer 5984 à Internet
- Exiger TLS et limiter par pare-feu aux hôtes de confiance uniquement
- Appliquer les correctifs CouchDB et Erlang pour CVE-2017-12635/12636
- Restreindre les interfaces de configuration et de query server
Commande nmap
nmap -p5984 --script http-title <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
Que tourne sur le port 5984 ?
Le port 5984 est le port par défaut de l'API HTTP/REST d'Apache CouchDB. CouchDB est une base de données documentaire qui stocke des documents JSON et expose tout — données, configuration et administration — via HTTP, de sorte que applications et administrateurs interagissent entièrement avec elle sur 5984. CouchDB repose sur Erlang/OTP.
Pourquoi c'est important pour la sécurité
Comme CouchDB s'administre via du HTTP en clair, l'exposition sur 5984 est critique. Les anciennes versions tournaient en mode « admin party » sans administrateur ni authentification, accordant un accès total en lecture/écriture/administration à quiconque atteignait le port. CouchDB a aussi souffert de CVE-2017-12635 (escalade de privilèges) et CVE-2017-12636 (exécution de code à distance), qui ensemble transformaient une instance ouverte en compromission totale de l'hôte.
Comment c'est attaqué
Les attaquants scannent les ports 5984 ouverts et, contre les instances en admin party, émettent des appels REST non authentifiés pour vider, modifier ou supprimer chaque base. Sur les versions non corrigées, ils enchaînent CVE-2017-12635 pour obtenir l'administration et CVE-2017-12636 pour réaliser une exécution de code à distance. Les CouchDB exposés sont aussi souvent effacés et rançonnés, une note de paiement remplaçant les données.
Liste de durcissement
Créez un compte administrateur pour mettre fin à l'admin party et exigez l'authentification. Liez CouchDB à localhost ou à une interface privée, gardez 5984 hors d'Internet, exigez TLS et limitez par pare-feu aux hôtes de confiance. Appliquez les correctifs CouchDB et Erlang pour CVE-2017-12635/12636, et restreignez les interfaces de configuration et de query server. Utilisez l'extrait nmap ci-dessus pour vérifier l'exposition sur les hôtes que vous êtes autorisé à tester.
Ports liés
Questions fréquentes
- Qu'est-ce que le mode « admin party » de CouchDB ?
- Par défaut, les anciennes versions de CouchDB n'avaient aucun utilisateur administrateur, donc chaque client disposait de tous les droits d'administration sur l'API HTTP. Créez immédiatement un compte administrateur, exigez l'authentification et liez à localhost.
- Quelle était la gravité de CVE-2017-12635 et CVE-2017-12636 ?
- Très grave. CVE-2017-12635 permettait d'escalader vers l'administration via un document de rôle forgé, et CVE-2017-12636 menait à l'exécution de code à distance. Appliquez les correctifs CouchDB et restreignez l'accès au port 5984.