LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 02-11-2023, 05:28 AM   #1
andrixnet
Member
 
Registered: Oct 2012
Location: Romania
Distribution: Slackware
Posts: 167

Rep: Reputation: Disabled
Question OpenSSL conundrum


Considering the recent problems discovered in OpenSSL (and in general) one may be faced with the prospect of upgrading OpenSSL version to a newer one then the distro default.

Today this is applicable to Slackware-14.2 (which I know, it's old, but I have many migration details to solve before I can make the full distro upgrade), but later in 2023 it will apply to Slackware-15.0 as well (openssl-1.1.1 support ends in september).

Can Slackware-14.2 (maybe even 14.1) be upgraded to openssl-1.1.1 series?
What packages need to be rebuilt when doing such an upgrade, assuming there aren't many in the way of incompatibilities at source level.

Of course this is meant as a short term fix against the published security problems until a full migration can be perfected.

Thank you.
 
Old 02-11-2023, 05:55 AM   #2
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,780

Rep: Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459
Quote:
Originally Posted by andrixnet View Post
Can Slackware-14.2 (maybe even 14.1) be upgraded to openssl-1.1.1 series?
What packages need to be rebuilt when doing such an upgrade, assuming there aren't many in the way of incompatibilities at source level.
I guess there are lots of incompatibilities at source level. But anyway, in Slackware64-14.2, let's check directories /lib64, /usr/lib64, /usr/sbin, /bin, /usr/bin, /usr/libexec for files linked to libcrypto.so.1 of openssl. (There could be stuff elsewhere, too)
Code:
$ (cd /;for f in lib64/*.so* usr/lib64/*.so* usr/sbin/* bin/* usr/bin/* usr/libexec/*; do objdump -x $f 2>/dev/null|grep NEEDED|grep -q libcrypto.so.1$ && echo $f ; done)|sed -e 's/^/^/' -e 's/$/$/'> ~/libcrypto.list
$ (cd /var/adm/packages;grep -lf ~/libcrypto.list *)|sed 's/-[^-]*-[^-]*-[^-]*$//'
prints this output:
Code:
NetworkManager
aaa_elflibs
alpine
apr-util
bind
curl
epic5
fetchmail
gftp
gkrellm
gvfs
hexchat
hplip
htdig
httpd
imapd
irssi
lftp
libarchive
libevent
libgpod
libimobiledevice
libmsn
libssh2
libvncserver
links
lynx
mailx
mariadb
moc
mutt
neon
net-snmp
netatalk
nmap
ntp
openldap-client
openssh
openssl
openssl-solibs
openvpn
php
pidentd
popa3d
ppp
proftpd
pulseaudio
rdesktop
rsync
sendmail
serf
slrn
snownews
stunnel
subversion
sudo
tcpdump
usbmuxd
virtuoso-ose
vsftpd
wget
wpa_supplicant
x3270

Last edited by Petri Kaukasoina; 02-11-2023 at 08:03 AM. Reason: Fixes. The latest was to anchor the beginning and the end of the file name with ^ and $.
 
2 members found this post helpful.
Old 02-11-2023, 12:39 PM   #3
andrixnet
Member
 
Registered: Oct 2012
Location: Romania
Distribution: Slackware
Posts: 167

Original Poster
Rep: Reputation: Disabled
That is a good starting point. Thank you.
 
1 members found this post helpful.
Old 02-11-2023, 12:49 PM   #4
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,780

Rep: Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459
There are 14 more packages with files in other directories. I wrote a script to check all the executable files of every installed package:

Code:
#!/bin/sh
LIB='libcrypto.so.1$|libssl.so.1$'
cd /var/adm/packages
for pkg in *; do
( cd /
  while read line; do
    [ "$line" == "FILE LIST:" ] && break
  done
  while read f; do
    [ -x "$f" ] && objdump -x "$f" 2>/dev/null|grep NEEDED|grep -Eq $LIB && echo $pkg && break
  done 
) < $pkg
done | sed -u 's/-[^-]*-[^-]*-[^-]*$//'
And the output:
Code:
GConf
M2Crypto
NetworkManager
aaa_elflibs
alpine
apr-util
bind
curl
cyrus-sasl
epic5
fetchmail
gftp
git
gkrellm
gvfs
hexchat
hplip
htdig
httpd
imapd
irssi
lftp
libarchive
libevent
libgpod
libimobiledevice
libmsn
libssh2
libvncserver
links
lynx
mailx
mariadb
moc
mutt
neon
net-snmp
netatalk
nmap
ntp
openldap-client
openssh
openssl
openssl-solibs
openvpn
perl
php
pidentd
popa3d
ppp
proftpd
pulseaudio
pycurl
python
qca
qt
rdesktop
redland
rsync
ruby
sane
sendmail
serf
slrn
snownews
stunnel
subversion
sudo
tcpdump
tumbler
ulogd
usbmuxd
virtuoso-ose
vsftpd
wget
wpa_supplicant
x3270

Last edited by Petri Kaukasoina; 02-12-2023 at 05:54 AM.
 
2 members found this post helpful.
Old 02-13-2023, 08:25 AM   #5
allend
LQ 5k Club
 
Registered: Oct 2003
Location: Melbourne
Distribution: Slackware64-15.0
Posts: 6,371

Rep: Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749
Just for fun, I built the parallel package from Slackware 15.0 in a clean, up to date Slackware 14.2 install, so that I could try the script originally posted by our BDFL. (There is a now a later version.)

After the initial hiccups of needing to run parallel on it's own to do the 'will cite' acceptance, and adapting the script to the previous package log location (sed -i 's:/var/lib/pkgtools/packages:/var/log/packages:g' find-whatlinksagainst.sh),
I ran './find-whatlinksagainst.sh openssl-1.0.2u-x86_64-4_slack14.2 | tee packagelist.txt' to generate the attached output.

Comments - The immediately interesting stuff is towards the end.
The UNKNOWN package mentioned in the output is sendmail, triggered by /usr/bin/sendmail being a symlink to /usr/sbin/sendmail.
Because I did not set up a PKGSOURCE, the package Series is not reported.
Attached Files
File Type: txt packagelist.txt (45.6 KB, 4 views)
 
3 members found this post helpful.
Old 02-13-2023, 09:40 AM   #6
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,780

Rep: Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459
I compared the package list against mine in https://www.linuxquestions.org/quest...0/#post6410612. The difference is 23 packages that you have and I don't. But I can't see why they are included:
Code:
gawk
gcc
gcc-g++
gcc-gfortran
gcc-gnat
gcc-go
gcc-java
gcc-objc
glib-networking
gmp
gnu-cobol
gnutls
gtk+2
gtk+3
guile
gutenprint
kcalc
libktorrent
libmpc
lxc
mpfr
nettle
nftables
Oh, I see it now. I guess all (?) of these were false positives because they link to /usr/lib64/libgmp.so.10 and openssl contains a totally different /usr/lib64/engines/libgmp.so.
 
2 members found this post helpful.
Old 02-13-2023, 09:53 AM   #7
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,780

Rep: Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459
By the way, here is another version of my script. Now printing the names of the individual files linking to openssl, as was in the beginning of your output.
Code:
#!/bin/sh
LIB='libcrypto.so.1$|libssl.so.1$'
cd /var/adm/packages
for pkg in *; do
( cd /
  while read line; do
    [ "$line" == "FILE LIST:" ] && break
  done
  while read f; do
    [ -x "$f" ] && objdump -x "$f" 2>/dev/null|grep NEEDED|grep -Eq $LIB && echo "$pkg": /"$f"
  done 
) < $pkg
done
 
1 members found this post helpful.
Old 02-13-2023, 09:53 AM   #8
allend
LQ 5k Club
 
Registered: Oct 2003
Location: Melbourne
Distribution: Slackware64-15.0
Posts: 6,371

Rep: Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749Reputation: 2749
Just goes to show that this is not a trivial exercise.
 
1 members found this post helpful.
Old 02-13-2023, 10:02 AM   #9
Petri Kaukasoina
Senior Member
 
Registered: Mar 2007
Posts: 1,780

Rep: Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459Reputation: 1459
Quote:
Originally Posted by allend View Post
The UNKNOWN package mentioned in the output is sendmail, triggered by /usr/bin/sendmail being a symlink to /usr/sbin/sendmail.
I think that's because it found /usr/sbin/sendmail which does not exist in /var/adm/packages/sendmail-8.15.2-x86_64-2 because it is originally /usr/sbin/sendmail.new and the install script moves it to /usr/sbin/sendmail. My script does not notice it at all, because it tries to check /usr/sbin/sendmail.new which does not exist. (But it finds several other binaries in the sendmail package.)
 
  


Reply

Tags
openssl



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] new openssl 1.1.0 - broken compatibility with openssl 1.0.1 FranekW Linux - Newbie 2 06-26-2018 10:49 AM
Does recursive mutex lock in openssl will affect other openssl users in same system? T.Selvan Linux - Networking 3 02-09-2016 12:59 AM
openssl: any simple examples no how to use openssl to do some decryption? eantoranz Programming 7 07-26-2012 07:57 PM
install of openssl-0.9.8b-8.3.el5 conflicts with file from package openssl-0.9.8b-8.3 jsaravana87 Linux - Server 1 09-26-2011 01:02 PM
oops openssl-0.9.8e over openssl-0.9.8d bad install now 2 copies? rcorkum Slackware 4 06-29-2007 01:58 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:13 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration