Bug 738693

Summary: user is not prompted to enter current password when changing to a new password
Product: Red Hat Enterprise Linux 6 Reporter: Namita Soman <nsoman>
Component: ipaAssignee: Rob Crittenden <rcritten>
Status: CLOSED ERRATA QA Contact: Chandrasekar Kannan <ckannan>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.1CC: benl, dpal, jgalipea, mkosek, pcfe, sgallagh
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ipa-2.1.2-1.el6 Doc Type: Bug Fix
Doc Text:
Cause: When a user has a valid Kerberos ticket, he can change an IPA password with "ipa passwd" command. Unfortunately, the command does not require entering a previous password Consequence: Anyone with access to user's shell with a valid Kerberos ticket can change his IPA password without knowing a previous password Fix: Always require entering a valid old password when changing an own IPA password. The only exception is changing another user's password (allowed for admin user only by default). Only the new password is required in this case obviously. Result: Malicious user who gets access to somebody else's shell with a valid Kerberos ticket cannot change an IPA password without knowing the old password. This is a more secure behavior.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 18:31:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Namita Soman 2011-09-15 14:43:15 UTC
Description of problem:
When changing one's own password, the user should first be prompted to enter his/her current password. 
This will protect the user from having anybody else change it for him/her.

Version-Release number of selected component (if applicable):
ipa-server-2.0.0-23.el6_1.2.x86_64
ipa-client-2.0.0-23.el6_1.2.x86_64

How reproducible:
always

Steps to Reproduce:
1.Login to ipa client machine, as say user1, whose password is say, password1
2.To change password, user1 now runs the command:
ipa passwd

Actual results:
This prompts user1 to enter new password.

Expected results:
Before prompting for new password, it should have prompted user1 to enter current password.
This will ensure that user1 is indeed the person changing his/her own password, and not somebody else.

Additional info:
output from server's /var/log/httpd/error.log:
[Thu Sep 15 10:27:37 2011] [error] ipa: INFO: one@TESTRELM: passwd(u'one', u'********'): DatabaseError
[Thu Sep 15 10:27:45 2011] [error] ipa: INFO: one@TESTRELM: ping(): SUCCESS
[Thu Sep 15 10:27:55 2011] [error] ipa: INFO: one@TESTRELM: passwd(u'one', u'********'): DatabaseError

Comment 2 Rob Crittenden 2011-09-16 15:09:13 UTC
Upstream ticket:
https://fedorahosted.org/freeipa/ticket/1808

Comment 3 Rob Crittenden 2011-09-22 15:21:59 UTC
The ticket was split to include changes in the 389-ds password plugin to enforce the old password as well, ticket https://fedorahosted.org/freeipa/ticket/1814

This was committed upstream as:
master: c981627016e0d3c0002214c1d2cc0812a480339a
ipa-2-1: a7b6a6e49857a4115170fdea41fe2e1f0300f66c

Comment 7 Martin Kosek 2011-11-01 10:16:27 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: When a user has a valid Kerberos ticket, he can change an IPA password with "ipa passwd" command. Unfortunately, the command does not require entering a previous password
Consequence: Anyone with access to user's shell with a valid Kerberos ticket can change his IPA password without knowing a previous password
Fix: Always require entering a valid old password when changing an own IPA password. The only exception is changing  another user's password (allowed for admin user only by default). Only the new password is required in this case obviously.
Result: Malicious user who gets access to somebody else's shell with a valid Kerberos ticket cannot change an IPA password without knowing the old password. This is a more secure behavior.

Comment 8 Namita Soman 2011-11-03 18:27:19 UTC
Verified using ipa-client-2.1.3-8.el6.x86_64

# ipa passwd
Current Password: 
New Password: 
Enter New Password again to verify: 
-----------------------------------
Changed password for "two@TESTRELM"
-----------------------------------

Comment 9 errata-xmlrpc 2011-12-06 18:31:34 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2011-1533.html