Description

In MoinMoin 1.9.2, an attempt by an unauthorized user to create a page fails when they attempt to edit it, but leaves a junk directory behind in data/pages. It appears that the ACL is not checked at page creation time.

Steps to reproduce

  1. Set acl_rights_* to give no permissions to users who aren't logged in.
  2. Log out and navigate to a page that doesn't exist (e.g. NoSuchPage).

  3. Attempt to create it anyway.
  4. You will get an error message saying that you don't have permission to write the page.
  5. Look in data/pages directory to find NoSuchPage directory and empty NoSuchPage/edit-log.

Example

Component selection

Details

MoinMoin Version

1.9.2

OS and Version

Mac OS X 10.6

Python Version

2.6.1

Server Setup

Apache CGI

Server Details

Language you are using the wiki in

English

Workaround

Delete junk directories from time to time (a little dangerous) or ignore them.

Discussion

The behaviour allows for a denial of service attack, where the server relies on a filesystem which limits the number of permissible subdirectories. Overloading an ext2 filesystem for example is relatively easy and prevents users from creating legitimate pages.

Note: the acl is of course checked, but some bad code triggered the creation of the empty edit-log when displaying the "not allowed" response.

Plan


CategoryMoinMoinBugFixed

MoinMoin: MoinMoinBugs/CreatingPagesWithoutWritePermissionCreatesEmptyPageDirectories (last edited 2014-05-28 00:00:17 by brln-4dbad57c)