= Description =

When using auth = [ldap_login, moin_cookie] to perform ldap authentication, the password hash is stored in the filesystem.  In the event of a server compromise, a cracking program could be used to obtain users' ldap passwords.

== Steps to reproduce ==
## Describe the steps needed to reproduce the bug. If we can't reproduce it, we  probably can't fix it.
 1. Configure ldap authentication with 'auth = [ldap_login, moin_cookie]' in wikiconfig.py
 1. Log in as an ldap authenticated user
 1. Check the file created in data/user/; note 'enc_password={SHA}...'

== Example ==
n/a

== Details ==

## If you got a traceback, please save the traceback page as html and attach here:
## attachment:traceback.html

## if the bug is in this wiki, just kill the table and write: This Wiki.

## If a traceback is not available, please fill in the details here:
|| '''!MoinMoin Version''' || 1.5.4 ||
|| '''OS and Version''' || Fedora Core 5 ||
|| '''Python Version''' || 2.4.3-8.FC5 ||
|| '''Server Setup''' || Apache/CGI ||
|| '''Server Details''' || ||
|| '''Language you are using the wiki in''' (set in the browser/UserPreferences) || English ||

== Workaround ==
## How to deal with the bug until it is fixed


= Discussion =


= Plan =
## This part is for Moin``Moin developers:

 * Priority: High, this is a security problem.
 * Assigned to:
 * Status: fixed in 1.6:
  * moin_cookie will go away in 1.6 and get replaced by moin_login and moin_session.
  * so for pure ldap logins, you will use auth = [ldap_login, moin_session]
   * ldap_login will check if there is some user/password in the current form (e.g. if user has used action=login), extracts those values, checks against ldap and creates a user object in memory if this is the case (it will also store a user profile to disk if you have autocreate, but it will not store the password hash)
   * moin_session will either take that memory user object and set a cookie for it or will use an existing cookie to make up a user object with it

----
## If you are a moin core developer, replace the category to Category* in these cases:
## Category MoinMoinNoBug - if this is not a bug.
## Category MoinMoinBugConfirmed - if you can confirm the bug on current code.
## Category MoinMoinBugFixed - after the bug is fixed in current code.
CategoryMoinMoinBugFixed