Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Yubico Authenticator 7.0.0 does not work on RHEL 8 and derivatives #1567

Open
hadrabap opened this issue May 22, 2024 · 1 comment
Open
Assignees

Comments

@hadrabap
Copy link

hadrabap commented May 22, 2024

The Yubico Authenticator 7.0.0 does not work on RHEL 8 and derivatives Linux distribution due to failure of authenticator-helper.

The root cause is that helper/_internal/libpython3.12.so.1.0 is compiled on newer distribution with newer GLIBC.

[opc@sws yubico-authenticator-7.0.0-linux]$ ldd $( find . -type f \( -perm /a+x -o -name '*.so*' \) ) 2>&1 | grep -v '=>' | grep 'not found' 
./helper/_internal/libpython3.12.so.1.0: /lib64/libpthread.so.0: version `GLIBC_2.30' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libpython3.12.so.1.0: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./helper/_internal/libpython3.12.so.1.0)

To fix this, the provided binaries should be compiled at most on RHEL 8-like Linux distribution or any other still supported LTS glibc-based distro with glibc version <= 2.28 (e.g. Oracle Linux 7).

Based on this listening (Oracle Linux 7):

[opc@gateway yubico-authenticator-7.0.0-linux]$ ldd $( find . -type f \( -perm /a+x -o -name '*.so*' \) ) 2>&1 | grep -v '=>' | grep 'not found'
./authenticator: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/opc/xx/yubico-authenticator-7.0.0-linux/./lib/liblocal_notifier_plugin.so)
./helper/_internal/cryptography/hazmat/bindings/_rust.abi3.so: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./helper/_internal/cryptography/hazmat/bindings/_rust.abi3.so)
./helper/_internal/cryptography/hazmat/bindings/_rust.abi3.so: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./helper/_internal/cryptography/hazmat/bindings/_rust.abi3.so)
./helper/_internal/cryptography/hazmat/bindings/_rust.abi3.so: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./helper/_internal/cryptography/hazmat/bindings/_rust.abi3.so)
./helper/_internal/libbsd.so.0: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./helper/_internal/libbsd.so.0)
./helper/_internal/libcrypto.so.1.1: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./helper/_internal/libcrypto.so.1.1)
./helper/_internal/libpython3.12.so.1.0: /lib64/libpthread.so.0: version `GLIBC_2.30' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libpython3.12.so.1.0: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libpython3.12.so.1.0: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libpython3.12.so.1.0: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libpython3.12.so.1.0: /lib64/libc.so.6: version `GLIBC_2.26' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libpython3.12.so.1.0: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by ./helper/_internal/libpython3.12.so.1.0)
./helper/_internal/libX11.so.6: /lib64/libc.so.6: version `GLIBC_2.26' not found (required by ./helper/_internal/libX11.so.6)
./helper/_internal/libexpat.so.1: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./helper/_internal/libexpat.so.1)
./helper/_internal/libstdc++.so.6: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./helper/_internal/libstdc++.so.6)
./lib/liblocal_notifier_plugin.so: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./lib/liblocal_notifier_plugin.so)

I suspect the Yubico Authenticator 7.0.0 is not build on RHEL 7-like distros, which is a shame, as it is currently the oldest supported LTS distro. Oracle Linux 7 is supported even longer. Another way how to handle versions of key components is to follow recommendations of VFX Reference Platform.

Distribution details:

[opc@sws yubico-authenticator-7.0.0-linux]$ cat /etc/os-release 
NAME="Oracle Linux Server"
VERSION="8.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.9



[opc@sws yubico-authenticator-7.0.0-linux]$ dnf info --installed glibc
Installed Packages
Name         : glibc
Version      : 2.28
Release      : 236.0.1.el8_9.13
Architecture : i686
Size         : 5.0 M
Source       : glibc-2.28-236.0.1.el8_9.13.src.rpm
Repository   : @System
From repo    : local-ol8_baseos_latest
Summary      : The GNU libc libraries
URL          : http://www.gnu.org/software/glibc/
License      : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL
Description  : The glibc package contains standard libraries which are used by
             : multiple programs on the system. In order to save disk space and
             : memory, as well as to make upgrading easier, common system code is
             : kept in one place and shared between programs. This particular package
             : contains the most important sets of shared libraries: the standard C
             : library and the standard math library. Without these two libraries, a
             : Linux system will not function.

Name         : glibc
Version      : 2.28
Release      : 236.0.1.el8_9.13
Architecture : x86_64
Size         : 6.4 M
Source       : glibc-2.28-236.0.1.el8_9.13.src.rpm
Repository   : @System
From repo    : local-ol8_baseos_latest
Summary      : The GNU libc libraries
URL          : http://www.gnu.org/software/glibc/
License      : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL
Description  : The glibc package contains standard libraries which are used by
             : multiple programs on the system. In order to save disk space and
             : memory, as well as to make upgrading easier, common system code is
             : kept in one place and shared between programs. This particular package
             : contains the most important sets of shared libraries: the standard C
             : library and the standard math library. Without these two libraries, a
             : Linux system will not function.
@AdamVe AdamVe self-assigned this Jun 3, 2024
@AdamVe
Copy link
Member

AdamVe commented Jun 4, 2024

Hello, thank you for reporting the issue. I reproduced the error with CentOS 7 and tried some quick workarounds, such as default build of Yubico Authenticator from sources / installation of Flathub’s flatpak / rebuilt flatpak locally, none of which sadly works. I am taking this back to discuss with the team and will keep you informed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants