Knowledge Base
CouchDB открыт публично (порт 5984)
CouchDB открыт публично — порт 5984
Категория: Server Hardening · Риск: critical
CouchDB открыт публично — порт 5984
Специфика CouchDB
CouchDB предоставляет REST HTTP API — что делает его особенно уязвимым: **любой браузер и curl** могут обратиться напрямую. Версии до 2.x в «Admin Party» режиме (по умолчанию) не требовали пароля вообще.
# Проверка публичного доступа
curl http://<IP>:5984/
# {"couchdb":"Welcome","version":"3.3.2",...}
# Получить список всех баз данных
curl http://<IP>:5984/_all_dbs
# ["_global_changes","_metadata","_replicator","_users","myapp","users_db"]
# Читать данные напрямую
curl http://<IP>:5984/users_db/_all_docs?include_docs=true
# Возвращает всех пользователей с их данными
Исправление
Закрыть порт
ufw deny 5984
Привязать к localhost
# /opt/couchdb/etc/local.ini
[chttpd]
bind_address = 127.0.0.1
port = 5984
Создать администратора (выйти из Admin Party)
# Через HTTP (до создания админа)
curl -X PUT http://localhost:5984/_node/nonode@nohost/_config/admins/admin \
-d '"<strong-password>"'
# Или в local.ini:
[admins]
admin = <strong-password>
Docker Compose
services:
couchdb:
image: couchdb:3
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: <strong-password>
ports:
- "127.0.0.1:5984:5984" # только localhost
volumes:
- couchdb_data:/opt/couchdb/data
Связанные проверки
- [MongoDB открыт](/kb/server_hardening/exposed-mongodb-27017)
- [Elasticsearch открыт](/kb/server_hardening/container-public-ports-inventory)