OpenSUSE libldap undefined symbol

opensusepasswd

Recently an OpenSUSE server had its root password changed (some say this mightve been a hacker or anything), I have no idea how or why, but they asked me to fix this.

Now the problem what I'm having is that whenever using passwd (or yast or several other commands like useradd) give the error (this is in single user mode, using a console):

passwd: symbol lookup error: /usr/lib/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp

Would this be anything broken in ldap or is the system basically screwed?
I'm not too familiar with OpenSUSE, but googling this errorcode only leads to some postgresql or ldap server on opensuse.

Best Answer

I assume your server is/was configured to authenticate against LDAP at some point.

My suspicion is you have a PAM module that relied on a specific version of the OpenLDAP libraries, and those libraries have been either removed or changed (upgraded/downgraded).

Find out what changed and reverse it. Alternatively as a quick fix you can scour your /etc/pam.d directory for stuff that authenticates against LDAP and temporarily comment them out (assuming that it won't destroy your universe to do so).