Bug 708287 - mod_auth_mysql.so: undefined symbol: make_scrambled_password
Summary: mod_auth_mysql.so: undefined symbol: make_scrambled_password
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: mod_auth_mysql
Version: 15
Hardware: All
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Jan ONDREJ
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-27 07:21 UTC by Jan ONDREJ
Modified: 2011-06-21 23:53 UTC (History)
10 users (show)

Fixed In Version: mod_auth_mysql-3.0.0-18.fc15
Clone Of:
Environment:
Last Closed: 2011-06-21 23:53:31 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
A temporarily hacked libmysqlclient.so.18.0.0 (3.81 MB, application/octet-stream)
2011-06-08 18:41 UTC, Dave Koberstein
no flags Details

Description Jan ONDREJ 2011-05-27 07:21:12 UTC
Description of problem:
Unable to start apache httpd with mod_auth_mysql installed.

Version-Release number of selected component (if applicable):
mod_auth_mysql-3.0.0-14.fc15.i686
httpd-2.2.17-10.fc15.1.i686
mysql-libs-5.5.12-1.fc15.i686

How reproducible:
always

Steps to Reproduce:
1. httpd -t
  
Actual results:
httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.d/auth_mysql.conf: Cannot load /etc/httpd/modules/mod_auth_mysql.so into server: /etc/httpd/modules/mod_auth_mysql.so: undefined symbol: make_scrambled_password


Additional info:
Need to recompile this module against newer mysql libs?

Comment 1 Răzvan Sandu 2011-05-29 21:26:18 UTC
Hello, I may confirm that I cannot use the Web mail system (squirrelmail) because of this. httpd won't start. IMHO, this is pretty severe and urgent...

Răzvan

Comment 2 Jan ONDREJ 2011-05-29 21:30:37 UTC
You can try to rebuild this package yourself if you need urgent solution.
Try to download src.rpm:
  yumdownloader --source mod_auth_mysql
and rebuild:
  rpmbuild --rebuild mod_auth_mysql*src.rpm
Sure, you need all required programs and libraries installed on your build system.

Comment 3 Dave Koberstein 2011-05-30 02:58:18 UTC
Just tried this with mod_auth_mysql.i686, 1:3.0.0-14.fc15.  Unfortunately same result.  Could one of the devel packages need updating?

Comment 4 thomas 2011-06-02 01:27:11 UTC
Adding a "me too" to this bug. On x86_64 system (KVM guest) running apache with mod_auth_mysql required.

Comment 5 Javier Alejandro Castro 2011-06-03 17:42:49 UTC
Same problem here. Please fix this soon! Thanks

Comment 6 John Griffiths 2011-06-06 01:12:04 UTC
My I add my vote. This is critical for many web apps.

Comment 7 Tom Boland 2011-06-08 16:28:58 UTC
This is a more widespread problem with more than one *_mysql.so module with the
new libmysqlclient.so.18. 

The affected *_mysql.so's all are making the deprecated make_scrambled_password
call. The f14 version of libmyclient.so (.16) allowed the call even though it
was deprecated. The new version version (.18) does not. 

Any mysql module that is making the call is failing to load (like this one in mod_auth_mysql) or failing on use (like pam_mysql.)

This is pretty serious in that nobody can authenticate against a mySql database
anywhere. I run almost strictly mySql-based virtual users, so my FTP and web
server is pretty much toast until this is fixed.

Comment 8 Tom Boland 2011-06-08 17:02:31 UTC
I did a quick grep for "make_scrambled_password" in binary files that weren't the libmusqlclient.so's . Came up with

Binary file /usr/lib64/httpd/modules/mod_auth_mysql.so matches
Binary file /etc/httpd/modules/mod_auth_mysql.so matches
Binary file /lib64/security/pam_mysql.so matches

Hardly definitive, but possibly helpful. Looks like it is fairly limited in scope - on my system at least. But it still is a major problem.

Comment 9 Jan ONDREJ 2011-06-08 17:43:24 UTC
Looks like similar problem was already fixed in pure-ftpd.
https://bugzilla.redhat.com/show_bug.cgi?id=708287

Comment 10 Tom Boland 2011-06-08 17:53:10 UTC
I concur. That's how I found reference to it.

Comment 11 Dave Koberstein 2011-06-08 17:57:34 UTC
Definitely a critical problem.

Tom - I think you are barking up the right tree - mod_auth_mysql 3.0.0 appears
to need updating.  I pulled the source from
http://modauthmysql.sourceforge.net/ and it still uses the old call.

I see that someone made a version of libmysqlclient.18 with the old
make_scrambled method in it for backward compatibility: 
http://www.mdvrb-factory.de/i586/libmysql18-5.5.12-1bmdv2010.2.i586.html

I extracted that rpm and tried to copy its lib in place but it's built against
a different libssl.  Since the site is in german I'm having trouble finding the
source rpm.  It should be easy either to rebuild against it or use it to patch
mysql.

If you happen to read german, let me know if you find the src rpm and I'll be
glad to monkey with it.

Comment 12 Dave Koberstein 2011-06-08 18:41:43 UTC
Created attachment 503754 [details]
A temporarily hacked libmysqlclient.so.18.0.0

Here's a workaround that was successful for me.

I grabbed the mysql source rpm with yumdownloader --source mysql.  I modified libmysql.version to export make_scrambled_password and make_scrambled_password_323.  Then manually copied libmysqlclient.so.18.0.0 into /usr/lib/mysql (after making a copy of the original).  httpd now starts.

I've attached it here purely for quick-fix purposes until a proper fix comes down the pipe.

Comment 13 Jan ONDREJ 2011-06-08 19:29:00 UTC
(In reply to comment #9)
> Looks like similar problem was already fixed in pure-ftpd.
> https://bugzilla.redhat.com/show_bug.cgi?id=708287

Sorry, wrong bug ID:
  https://bugzilla.redhat.com/show_bug.cgi?id=690346

I think hacking mysql to be backward compatible is not a good solution. Looks like this old version has some security problems, because password length was not specified. If you consider mysql changes are correct, please change component to mysql.

There looks to be another problem. There is no "my_make_scrambled_password" in fedora15's mysql header files. Anybody knows why?

Comment 14 Dave Koberstein 2011-06-08 21:02:37 UTC
I definitely agree it's the wrong permanent solution.  But I would guess we are safe that httpd doesn't have a null-termination problem on the password string.  So to get going for now, it's would seem to be a reasonable temporary solution to get back on the air. It's definitely not an option to turn off mod_auth_mysql

Additionally, and I may be reading the rpm source wrong, it looks like in the mysql code it's deprecated, not removed.

I didn't try very hard to make mod_auth_mysql work with my_make_scrambled_password.  It looked to be exported.  Are you sure there isn't just a method signature issue - when you changed the call, is the length right type?

Comment 15 Jan ONDREJ 2011-06-08 21:08:58 UTC
Please, test following update and add positive karma if it works.

Comment 16 Fedora Update System 2011-06-08 21:10:44 UTC
mod_auth_mysql-3.0.0-18.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/mod_auth_mysql-3.0.0-18.fc15

Comment 17 Dave Koberstein 2011-06-08 21:20:51 UTC
Awesome.  Works for me.

Comment 18 Tom Boland 2011-06-09 04:13:29 UTC
I loaded the fix. Apache now loads without error. Will test it further. Thanks.
Should I put in a bugzilla for pam_mysql.so for same problem?

Comment 19 Fedora Update System 2011-06-10 13:34:14 UTC
Package mod_auth_mysql-3.0.0-18.fc15:
* should fix your issue,
* was pushed to the Fedora 15 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing mod_auth_mysql-3.0.0-18.fc15'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/mod_auth_mysql-3.0.0-18.fc15
then log in and leave karma (feedback).

Comment 20 Fedora Update System 2011-06-21 23:53:24 UTC
mod_auth_mysql-3.0.0-18.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.