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.
En bref
- Transport
- tcp
- Catégorie
- Registered
- Niveau de risque
- Critique
Activement exploité et à fort impact — gardez-le hors d'Internet.
É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.
À quoi sert 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 les données sous forme de documents JSON, et expose tout — requêtes, stockage, réplication et administration — via du HTTP en clair sur ce port. Les applications y accèdent par de simples requêtes HTTP, et des outils comme curl, l'interface web Fauxton intégrée et les bibliothèques clientes CouchDB s'y connectent.
Quand faut-il l'ouvrir ?
N'ouvrez ou ne redirigez le port 5984 que lorsque vous exploitez un serveur CouchDB que d'autres machines ou applications doivent réellement atteindre, comme un service backend ou un partenaire de réplication. Si CouchDB n'est utilisé que par des logiciels sur le même hôte, laissez-le lié à localhost et gardez le port fermé.
Est-ce risqué de l'ouvrir ?
CouchDB s'administre via HTTP, donc un port exposé peut donner un accès complet en lecture/écriture à vos données ; exigez l'authentification, utilisez TLS et limitez l'accès aux hôtes de confiance. Voir les notes de sécurité ci-dessous.
Comment vérifier si ce port est ouvert
ss -tulpn | grep :5984
nmap -p 5984 <target>netstat -ano | findstr :5984
Test-NetConnection <host> -Port 5984lsof -i :5984
nmap -p 5984 <target>Comment ouvrir ce port sur votre box/routeur
Pour joindre ce service depuis l'extérieur de votre réseau, redirigez le port sur votre box :
- Ouvrez la page d'administration de votre box (souvent http://192.168.1.1 ou http://192.168.0.1) et connectez-vous.
- Trouvez la section « Redirection de ports » — parfois appelée NAT, Serveur virtuel ou NAT/PAT.
- Ajoutez une règle redirigeant le port externe 5984 vers l'IP locale de votre appareil, port interne 5984, protocole TCP.
- Enregistrez, redémarrez la box si demandé, puis testez le port depuis l'extérieur de votre réseau.
Ne redirigez que des ports que vous maîtrisez — cela expose l'appareil à Internet. Pour un accès distant d'administration, un VPN est plus sûr que la redirection de port.
Autoriser ce port dans le pare-feu
sudo ufw allow 5984/tcpsudo firewall-cmd --permanent --add-port=5984/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 5984 -j ACCEPTNew-NetFirewallRule -DisplayName "Allow 5984" -Direction Inbound -Protocol TCP -LocalPort 5984 -Action AllowSécurité et risques
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
Comment bloquer ce port
sudo ufw deny 5984/tcpsudo firewall-cmd --permanent --remove-port=5984/tcp
sudo firewall-cmd --reloadsudo iptables -A INPUT -p tcp --dport 5984 -j DROPNew-NetFirewallRule -DisplayName "Block 5984" -Direction Inbound -Protocol TCP -LocalPort 5984 -Action BlockCommande nmap
nmap -p5984 --script http-title <target>Remplacez <target> par l’hôte ou la plage que vous êtes autorisé à scanner.
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.