[MDEV-19876] pam v2: auth_pam_tool_dir and auth_pam_tool permissions are wrong in RPMs Created: 2019-06-26 Updated: 2022-02-15 Resolved: 2019-07-24 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Packaging, Plugin - pam |
| Affects Version/s: | 10.4.6 |
| Fix Version/s: | 10.4.7 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Geoff Montee (Inactive) | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
The permissions of auth_pam_tool_dir and auth_pam_tool are wrong in MariaDB 10.4. These are used by version 2 of the pam plugin. If you run mysqld with strace, then you can see the failure. For example, start mysqld:
And then try to authenticate as an account that uses pam v2 (while using the workaround for
The strace output shows why this failed:
The problem seems to be with the permissions of the /usr/lib64/mysql/plugin/auth_pam_tool_dir/ directory:
You can workaround this by executing the following:
It looks like permissions of auth_pam_tool are also wrong:
To workaround this, you need to add the setuid bit:
|
| Comments |
| Comment by Geoff Montee (Inactive) [ 2019-07-09 ] | ||||||||||||||||||||||||||||||||||||||||
|
I tested out the fix for this using tarbuildnum #27339 from hasky for RHEL 7: http://buildbot.askmonty.org/buildbot/builders/kvm-rpm-centos74-amd64/builds/8839 http://hasky.askmonty.org/archive/10.4/build-27339/kvm-rpm-centos74-amd64/rpms/ This issue is not fixed. The associated commits added some code to mysql_install_db, so that the mysql_install_db will chown/chmod auth_pam_tool_dir and auth_pam_tool, so that the directory and executable have the correct owner and perrmissions. But there is a problem with this fix. This fix still leads to failures when: 1.) Upgrading an existing installation. In this case, 10.4's mysql_install_db is never executed to begin with, so the owner and permissions will never be changed. 2.) Upgrading from one 10.4 release to another 10.4 release using RPMs. In this case, the existing auth_pam_tool_dir and auth_pam_tool will be replaced by the contents of the new RPM, so the chown/chmod that was previously done by mysql_install_db will be undone. The root cause of the problem is that these files do not have the correct owner and privileges in the RPM itself. See here:
This issue will not be fixed until the files have the proper owner and permissions in the RPM. Otherwise, any owner and privileges changes will just be undone anytime the server RPM is upgraded, and the files are replaced. If we can't figure out how to fix the owner and permissions in the RPM itself, then we may also be able to fix them in the RPM's postin script: https://github.com/MariaDB/server/blob/mariadb-10.4.6/support-files/rpm/server-postin.sh | ||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2019-07-09 ] | ||||||||||||||||||||||||||||||||||||||||
|
This seems to be version specific In centos7 auth_pam_tool is indeed not suid root in the rpm, in centos6, rhel6, fedoras, suse — everywhere else it is suid inside the rpm | ||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2019-07-10 ] | ||||||||||||||||||||||||||||||||||||||||
|
It's a bug in rpm-build. In particular, see https://github.com/rpm-software-management/rpm/blob/rpm-4.16.1.3/tools/sepdebugcrcfix.c#L360 This line is there at least as of version 4.12.90. CentOS7 (even after yum upgrade rpm-build) has 4.11.3-35, which does not have that line. I suppose our only option for now is to fix privileges in a postin scriptlet. | ||||||||||||||||||||||||||||||||||||||||
| Comment by pgnd [ 2021-04-24 ] | ||||||||||||||||||||||||||||||||||||||||
|
has this been fixed/resolved for general use in downstream packaging? I'm seeing the following with 10.5.9 rpm pkgs on Fedora 33; unclear whether this is (still) an MDB issue, or simply packaging. [EDIT: It appears to be an issue @RH, and I suspect therefore @Fedora. Bug 1936842 - mariadb:10.5/mariadb: Review permissions of auth_pam_tool and auth_pam_tool_dir on a clean install of
distro-pkg installed
clean installing
reports
referencing checking
exec'ing, per above (
but
so, of course,
with just the available change, simply repeating the install
still reports
| ||||||||||||||||||||||||||||||||||||||||
| Comment by Luke (Inactive) [ 2022-02-15 ] | ||||||||||||||||||||||||||||||||||||||||
|
pgnd, I checked Mariadb Enterprise version 10.5.9 and 10.7.3 community from the repo for centos7. I believe you're getting those errors because the directories are: not /usr/lib64/mariadb/plugin/auth_pam_tool_dir/auth_pam_tool |