[ 
https://issues.apache.org/jira/browse/COUCHDB-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13564159#comment-13564159
 ] 

Jason Smith commented on COUCHDB-1656:
--------------------------------------

Only admins can edit design documents, but all users can read them. There is 
nothing in databases which are only visible to admins, so far. As a RESTful web 
service, if Couch lets me read /some_db then it also lets me read /some_db/*.

If only admins can see _security, that would be the first time in CouchDB 
history (depending how you count system DBs) where I can read a database but 
not some parts inside it.

I like the patch too, but this is a big change to the security model. I'd just 
like to think this through carefully. With this patch, I could set

_security = {admins:..., members:..., ok_role:"some_role"}

and validate_doc_update =

function(newDoc, oldDoc, userCtx, secObj) {
  var has_the_role = ~userCtx.roles.indexOf(secObj.ok_role)
  return has_the_role
}

This is just restating my point that, with this patch, there are more secrets 
to think about in the security system. Used to be, the _user document was the 
secret. Nothing else. Now we have more secrets which interact in some complex 
way.

As a minor point, if we *do* take this patch, and if people *do* write 
validators that depend on this feature, then the validation function will leak 
information about _security. People can try variations on document data and 
user accounts (couch still lets you "sign up" without limitation) and learn 
some things about _security. This is a theoretical secrecy leak but it's worth 
identifying.
                
> Anonymous Users and Non-Admins Can Read the Security Object
> -----------------------------------------------------------
>
>                 Key: COUCHDB-1656
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1656
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>            Reporter: Klaus Trainer
>         Attachments: 
> 0001-Don-t-give-non-admins-read-access-to-db-_security.patch
>
>
> It is possible that anonymous users are able to read a DB's security object 
> if the security object's `members` array is empty or missing. Also, it is 
> generally possible for authenticated members (non-admin users) to read  the 
> security object.
> Only admin users should be allowed to read the security object.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to