Skip to content

Don't confirm CouchDB CRITICAL from a generic JSON array - #47

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-management-8d8f
Draft

cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-management-8d8f

Conversation

@cursor

@cursor cursor Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Port 5984 is in the default scan set, so check_couchdb_noauth always runs. GET /_all_dbs returning HTTP 200 with a body that merely started with [ confirmed CRITICAL unauthenticated admin access — including invalid JSON ([object Object]), a REST API list, or [] from an unrelated JSON service. Fusion treats source=probe + high reliability as un-droppable, so the false CRITICAL could not be discarded.

Trigger: scan a host with anything on 5984 that returns a JSON array (docker-mapped API, catch-all that returns [], JS that starts with [).

Fix: require a JSON array of database-name strings plus CouchDB identity (Server header, _users/_replicator/_global_changes, or the Welcome document).

Tests: test_probers.py covers the false-positive bodies and still confirms real CouchDB (_users, empty array with Server: CouchDB, Welcome-identified named dbs). Full python3 -m pytest test_*.py -q: 1755 passed, 5 skipped.

Open in Web View Automation 

Port 5984 is in the default scan set. GET /_all_dbs returning HTTP 200
with a body that merely started with '[' (invalid JSON, a REST list, or
an empty array from an unrelated API) pinned unauthenticated admin access.
Fusion treats source=probe findings as un-droppable.

Require a JSON array of database-name strings plus CouchDB identity
(Server header, system db names, or the Welcome document).

Co-authored-by: dmitryflynn <dmitryflynn@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant