Package: python-ldap3 Version: 0.9.4.2-1 Severity: important Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? * What exactly did you do (or not do) that was effective (or ineffective)? * What was the outcome of this action? * What outcome did you expect instead? *** End of the template - remove these template lines *** When creating a connection with the Connection object the code defaults to AUTH_ANONYMOUS (doing so an anonymus bind) also when _only_ the password is empty (not, as said by documentation, when both user and password are empty). These the lines of /usr/lib/python3/dist-packages/ldap3/core/connection.py where the problem is: self.user = user self.password = password if self.user and self.password and not authentication: self.authentication = AUTH_SIMPLE elif not authentication: self.authentication = AUTH_ANONYMOUS elif authentication in [AUTH_SIMPLE, AUTH_ANONYMOUS, AUTH_SASL]: self.authentication = authentication else: self.last_error = 'unknown authentication method' raise LDAPUnknownAuthenticationMethodError(self.last_error) If password is empty, according to default of None for authentication, the first if fails and then is selected the second elif. That means that you will get a valid object with anonymous bind, the user presence will be simply ignored but, and so when you use object also to check autentication, looking if you get a connection (as it should be), you will got authentication for every user just giving an empty password. That's plain wrong, contrary to what is said in the documentation here: http://ldap3.readthedocs.io/connections.html and very dangerous (the more plain way to use the library will bring people to enable empty password access for any user). -- System Information: Debian Release: 8.4 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 4.4.6-1-pve (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages python-ldap3 depends on: ii python-pyasn1 0.1.7-1 pn python:any <none> python-ldap3 recommends no packages. python-ldap3 suggests no packages. -- no debconf information _______________________________________________ Python-modules-team mailing list Python-modules-team@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/python-modules-team