Sicherheitslücke in RPM: alte Keys werden nicht ungültig

Wie ZDNET gerade berichtet, haben RPM / DNF System wie Fedora, CentOS , RHEL und andere ein kleines Problem mit einer möglichen Supply-Chain-Attack.

Sicherheitslücke in RPM: alte Keys werden nicht ungültig

RPM Pakete aus Distro Repos werden i.d.R. signiert mit dem Key der jeweiligen Distro. RPM / DNF prüfen nach dem Download die Signatur des Pakets und nur wenn die gültig ist, wird das Paket installiert oder aktualisiert.

Die Prüfung ist leider nicht vollständig, weil alte Schlüssel nicht ungültig werden, da keine Revocationliste gefragt wird, ob der Key nicht zurückgezogen oder abgelaufen ist.

Das führt zu einer Supply-Chain-Attacke die uns allen dumm auf die Füsse fallen kann, wenn jemand die Repo Mirrors knacken sollte um dort geänderte Pakete mit alten Keysignaturen zu versehen. Damit wäre die Sicherheit der ganzen Installation gefährdet. Erschweredn kommt hinzu das immer noch unsignierte Pakete akzeptiert werden, auch wenn die GPG Signaturenprüfung aktiviert ist, meinen jedenfalls die Finder der Lücke.

Zwei Workarounds sind denkbar:

  1. Mirrorliste der Repos abschalten und nur noch die Hauptserver von Fedora /CentOs/ RHEL benutzen. Temporär wäre das eine Maßnahme, aber es belastet die Hauptserver kräftig.
  2. Die alten Keys vom System entfernen, dann sind die Signaturen nicht prüfbar => Problem erst einmal gelöst, außer es lassen sich wirklich unsignierte Pakete installieren, das wäre fatal.

Quelle: https://www.zdnet.com/article/major-linux-rpm-problem-uncovered/

Linux am Dienstag: Programm für den 15.6.

Ich wußte ja, früher geht immer, aber diesmal .. wow 😀 Von mir jetzt schon einmal einen recht herzlichen Dank an alle, die nächsten Dienstag Vorträge halten werden.

Linux am Dienstag: Programm für den 15.6.

Und dabei ist das nur ein Ausschnitt des Programms, wir haben noch mehr in Petto 😀

u.a. im Programm am 15.6., ab 19 Uhr:

  • Firefox 89 – Layoutupdate doch nicht so tragisch?
  • Blender Einführung – Teil 2/6 – Wir modellieren: Einen Baum
  • OpenSuse – Schwere Fehler nach Update von Leap 15.3
  • DNF – Wie man es benutzt
  • Backups mit ZFS – Teil 1/2: Einführung in ZFS
  • 30 Jahre PGP – Glückwünsche an Phil Zimmermann
  • 8.4 Milliarden – Passwort Leak 2021
  • Linux Foundation – Das Covid-Zertifikate-Netzwerk
  • Bitcoin – erstes Land erklärt Bitcoin zum Zahlungsmittel

Wie immer jeden Dienstag, ab 19 Uhr auf https://meet.cloud-foo.de/Linux .

presenting the Rawhide Downgrade to past date script

The this script gets the latest updates via dnf log files and reversed the system back to a given date in time, that is still in the logfile.

Presenting the Rawhide Downgrade to past date script

It’s far from perfect, but tries it’s best.  You need to install koji package first:  „dnf install koji

Most likely outcome: some packages will be missing, because koji can’t find them and some will be double present, with different versions and you end up in a collision. Remove the higher version files manually and do „dnf downgrade ./*rpm

Usage: scriptname {timestamp}

#!/bin/bash

grep "Upgraded:" /var/log/dnf.rpm.log | sort -r > /tmp/liste

mkdir rpmdownload
cd rpmdownload

if [ "" == "$1" ]; then

	echo "Keine Zeit angegeben.. benutze 4.2.2021"
	since=$(date --date="2021-02-04T00:00:00+0100" "+%s")

else 
	since=$(date --date="$1" "+%s")

fi

packs=""

declare -A old = ()

IFS=$'\n'
for line in $(cat /tmp/liste)
do 

	date=$(echo $line|sed -e "s/ .*//g")
	pkg=$(echo $line|sed -e "s/^.*: //g")
	
	time=$(date --date="$date" "+%s")

	if [ $time -gt $since ]; then 
	
		echo "$date => OK => $pkg"
		
		koji download-build --rpm $pkg
		basename=$(rpm -q --queryformat="%{Name}" ./$pgk)

		if [ "${old[$basename]}" != "" ]; then
			echo "found old entry ${old[$basename]}";
			rm -f ${old[$basename]}
		fi 

		$old[$basename]="$pkg"
		packs="$packs $pkg"
		
	else 
	
		echo "$date => IGNORE => $pkg"
	fi
	
done

if [ "$packs" != "" ]; then

	dnf -y downgrade ./*rpm
	
fi 

When is it usefull?

If something, you don’t know of, broke the system by Updates and you need to undo tons of downgrades. Happend to pinephones on the 8th of February 2021.