[ 
http://jira.magnolia.info/browse/MAGNOLIA-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18101#action_18101
 ] 

Fabrizio Giustina commented on MAGNOLIA-2388:
---------------------------------------------

thanks Jan ;)

>     *  the dialog is exposed (this is new) so users can change their own 
> privileges (by default, all except anonymous) (this right was always here).

perfect

> * the above is configurable and where desirable, users can be taken away such 
> privilege

great.
My point here is that I can't see user and roles as "user preferences", they 
are usually a completely different stuff. I would just modify this dialog (not 
reusing the same one used for editing users) by removing the role/group 
selector.

> user can (un)assign only roles/groups he/she has rights to read

ok, but just to make it stronger: can we assume the user must have both read 
privileges on the groups/roles and write permissions on its own acls? And that 
any user should not have a write permission on its own acl by default?
That's the main part of the whole that looks fragile, actually this all is 
based to the fact that adding a role the user can't read doesn't work because 
the save handler isn't able to convert the role name to a uuid.
nb: the problem of a "corrupted" user node if a user manually type a user role 
he can't access is directly correlated, and pretty important to fix: neither 
the superuser is able to fix a similar node, he can just delete it and 
recreate. I assume that if we expose a field called "roles" we will end up with 
tons of broken users. Who could resist to just try to write "superuser" if you 
get proposed a similar form? ;D
(ok, it may be a user "mistake", but we should at least don't punish him too 
much)

> assigning user explicitly read to whole userroles workspace is equivalent to 
> assigning that user superuser role in respect to granting roles hence such 
> user can assign any role (even to themselves). If you need user to be able to 
> assign roles, but do not want such user to be able to assign privileges to 
> themselves, you have to explicitly set acl_userroles of that given user to 
> read only for that given user (again this is same as before 3.6.2)

understood, and my point is: let's remove the write privilege to the acl 
subnode if not assigned by default. It's true that some of this problems were 
also in previous versions of magnolia, but adding a edit dialog easily 
accessible to any user surely could make the problem bigger.



Summing up, this are the improvement I would suggest:
- create a specific dialog for user preferences, without the group/role selector
- bugfix: if a wrong/unreadable role/group is manually inserted in the field, 
don't break the user node, just don't assign such group/role
- make acls on the own user node not writable by default (so just making it 
secure by default and allowing to change it if needed).

that's all, and I happily could take care of working at some of these if we 
agree that it could be an improvement compared to what we have now...
(if we agree on some of these points we could split this discussion in small 
specific tasks?)





> Easy privilege escalation from user preferences
> -----------------------------------------------
>
>                 Key: MAGNOLIA-2388
>                 URL: http://jira.magnolia.info/browse/MAGNOLIA-2388
>             Project: Magnolia
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 3.6.2
>            Reporter: Fabrizio Giustina
>            Assignee: Fabrizio Giustina
>            Priority: Blocker
>             Fix For: 3.6.2
>
>
> This is a leftover from MAGNOLIA-574 : since the task was closed ignoring my 
> comments and no other task is listed for 3.6.2 I am adding this as a separate 
> issue since IMHO magnolia 3.6.2 can't be released as is now...
> After the change in MAGNOLIA-574 and related now every user (at least with a 
> read only access to the user repository) can self-change its role to 
> superuser using the preference dialog linked to the user name.
> Just create a user with a editor role and readonly access to userroles: he 
> can just type "/superuser" in its preference dialog to gain full access.
> The are multiple issues/tasks associated to this:
> - user should not be have read/write permissions to the acls by default, this 
> should be strictly forbidden unless explicitely added by a superuser
> - the preference box dialog should not list group/roles (it makes no sense, 
> just name me another app where users have a similar thing in their preference 
> page!)
> - a bug in the bug: if the user enters a role he doesn't have read rights for 
> in the preference page the user node gets corrupted and can't be edited 
> anymore
> as previously discussed, IMHO a better solution would be allowing only 
> readonly access to own user node by default and using a custom save handler 
> for the preference page which allow editing of checked properties using a 
> system operation. User preferences should use obviously a different dialog 
> from the standard user edit dialog.
> Nobody else cares about this?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.magnolia.info/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/
----------------------------------------------------------------

Reply via email to