Bug 1348838

Summary: Default Setting for passwordMinTokenLength does not work
Product: Red Hat Enterprise Linux 7 Reporter: Punit Kundal <pkundal>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: amsharma, mreynolds, nkinder, rmeggins
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.6.1-3.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 21:10:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Punit Kundal 2016-06-22 08:02:04 UTC
Description of problem:
Default Setting for passwordMinTokenLength does not work

Version-Release number of selected component (if applicable):
389-ds-base-1.3.5.6-1.el7.x86_64
389-ds-base-libs-1.3.5.6-1.el7.x86_64

How reproducible:
Always
 
Steps to Reproduce:
1.Modify the cn=config entry and set 'passwordCheckSyntax' to 'on'
 
2.Add a user entry as below
ldapadd -x -D 'cn=Directory Manager' -w secret123 -h localhost -p 389
dn: uid=jsmith,ou=people,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: inetOrgPerson
uid: jsmith
cn: john smith
sn: smith
userPassword: secret123
 
3. Now bind to the server with that user and modify the userPassword attribute
ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret123 -h localhost -p 389
dn: uid=jsmith,ou=people,dc=example,dc=com
changetype: modify
replace: userPassword
userPassword: J1234smi
 
Actual results:
The password was accepted and stored, even though it contained 3 sequential
characters from 'sn' attribute of the entry
 
Expected results:
This modify operation should have been rejected with a
Constraint Violation
 
Additional info:
I performed the same steps by setting passwordMinLength and passwordMinCategories to their minimum values but still the password was accepted and stored
 
I also performed the same steps on RHEL6 and was able to reproduce the issue

Comment 3 Noriko Hosoi 2016-06-22 19:36:30 UTC
Upstream ticket:
https://fedorahosted.org/389/ticket/48896

Comment 6 Amita Sharma 2017-04-24 07:32:53 UTC
Tested few use cases with 389-ds-base-1.3.6.1-9.el7.x86_64
Working fine -

[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: J1234smi
> EOF
modifying entry "uid=jsmith,ou=people,dc=example,dc=com"
ldap_modify: Constraint violation (19)
	additional info: invalid password syntax - password based off of user entry

[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: J12ith34
> EOF
modifying entry "uid=jsmith,ou=people,dc=example,dc=com"
ldap_modify: Constraint violation (19)
	additional info: invalid password syntax - password based off of user entry

[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: secret123
> EOF
modifying entry "uid=jsmith,ou=people,dc=example,dc=com"
ldap_modify: Constraint violation (19)
	additional info: invalid password syntax - password must contain at least 3 character categories (valid categories are digit, uppercase, lowercase, special, and 8-bit characters)

[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: secret@123
> EOF
modifying entry "uid=jsmith,ou=people,dc=example,dc=com"

[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: ith@123
> EOF
ldap_bind: Invalid credentials (49)
[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret@123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: ith@123
> EOF
modifying entry "uid=jsmith,ou=people,dc=example,dc=com"
ldap_modify: Constraint violation (19)
	additional info: invalid password syntax - password must be at least 8 characters long

[root@vm-idm-014 ~]# ldapmodify -x -D 'uid=jsmith,ou=people,dc=example,dc=com' -w secret@123 -h localhost -p 389 << EOF
> dn: uid=jsmith,ou=people,dc=example,dc=com
> changetype: modify
> replace: userPassword
> userPassword: ith@1234
> EOF
modifying entry "uid=jsmith,ou=people,dc=example,dc=com"
ldap_modify: Constraint violation (19)
	additional info: invalid password syntax - password based off of user entry

Hence Verified.

Comment 7 Amita Sharma 2017-05-02 13:15:39 UTC
=========================================================== test session starts ============================================================
platform linux2 -- Python 2.7.5, pytest-3.0.7, py-1.4.33, pluggy-0.4.0 -- /usr/bin/python
cachedir: .cache
metadata: {'Python': '2.7.5', 'Platform': 'Linux-3.10.0-657.el7.x86_64-x86_64-with-redhat-7.4-Maipo', 'Packages': {'py': '1.4.33', 'pytest': '3.0.7', 'pluggy': '0.4.0'}, 'Plugins': {'beakerlib': '0.7.1', 'html': '1.14.2', 'cov': '2.4.0', 'metadata': '1.3.0'}}
DS build: 1.3.6.1
389-ds-base: 1.3.6.1-9.el7
nss: 3.28.4-3.el7
nspr: 4.13.1-1.0.el7_3
openldap: 2.4.44-4.el7
svrcore: 4.1.3-2.el7

rootdir: /export/tests, inifile:
plugins: metadata-1.3.0, html-1.14.2, cov-2.4.0, beakerlib-0.7.1
collected 1 items 

tickets/ticket48896_test.py::test_ticket48896 PASSED

Comment 8 errata-xmlrpc 2017-08-01 21:10:21 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.

https://access.redhat.com/errata/RHBA-2017:2086