My dynamic loader refuses to load libQt5Core because of the ABI tag note
Carlos O'Donell
carlos@redhat.com
Thu Oct 7 19:00:59 GMT 2021
On 10/7/21 14:53, Jeffrey Walton via Libc-help wrote:
> On Thu, Oct 7, 2021 at 2:47 PM Krzysztof Żelechowski via Libc-help
> <libc-help@sourceware.org> wrote:
>>
>> /usr/lib/YaST2/bin/y2controlcenter
>> /usr/lib/YaST2/bin/y2controlcenter: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
>> uname -r
>> 4.4.0-19041-Microsoft
>> ldd /usr/lib64/libQt5Widgets.so.5
>> libQt5Core.so.5 => not found
>> /usr/lib64/libQt5Core.so.5
>> This is the QtCore library version Qt 5.12.7 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0)
>> Copyright (C) 2016 The Qt Company Ltd.
>> Contact: http://www.qt.io/licensing/
>>
>> Installation prefix: /usr
>> Library path: lib64
>> Include path: include/qt5
>> Processor features: sse2[required] sse3 ssse3 fma sse4.1 sse4.2 movbe popcnt aes avx f16c rdrnd bmi avx2 bmi2 rdseed sha
>> readelf -n /usr/lib64/libQt5Core.so.5
>> Displaying notes found in: .note.ABI-tag
>> Owner Data size Description
>> GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag)
>> OS: Linux, ABI: 3.17.0
>> objcopy -R .note.ABI-tag /usr/lib64/libQt5Core.so.5 /tmp/libQt5Core.so.5
>> LD_LIBRARY_PATH=/tmp /usr/lib/YaST2/bin/y2controlcenter
>
> Off-topic, this is probably CVE worthy:
>
> LD_LIBRARY_PATH=/tmp
Why is this CVE worthy?
The user copied a library to /tmp, stripping a section, and then restarted the binary
with an LD_LIBRARY_PATH to use the temporary copy of the library with the changes.
LD_LIBRARY_PATH is used *after* DT_RPATH (if DT_RUNPATH is not present), and so has
precedence as expected, and is controlled by the user.
--
Cheers,
Carlos.
More information about the Libc-help
mailing list