
Technische Analyse und Proof-of-Concept-Exploit für CVE-2025-61228, eine Privilegieneskalations-Schwachstelle im Auto-Update-Mechanismus von SuperDuper!, mit detaillierter Aufschlüsselung des Angriffsvektors und Mitigationsanleitung.
Dieses Problem scheint schlimmer zu sein, als der Entwickler vermuten lässt, und ich möchte nicht, dass dieser Teil untergeht. Der Entwickler merkte in seinem Blog an:
Dies kann nur passieren, wenn ein auf Ihrem System laufendes Programm nach SuperDuper sucht, um ein Update durchzuführen, ein echtes Update auf legitimen Wegen angeboten wird und Sie auf Upgrade klicken.
Das ist nicht wirklich wahr: Die Ausnutzung dieser Schwachstelle erfordert kein echtes Update, das auf legitimen Wegen angeboten wird. Akzeptieren Sie niemals, wirklich niemals ein Update von SuperDuper 3.10 und älter! Ich erkläre dies weiter unten genauer.
Es ist auch wichtig zu verstehen, dass diese Schwachstelle nicht nur eine Privilegienausweitung betrifft, sondern auch eine Untergrabung der Datenschutzkontrollen. Dieses Detail scheint im Blogbeitrag des Entwicklers ausgelassen worden zu sein.
Aus dem Blog des Entwicklers:
Unser Auto-Update-Mechanismus kann gekapert und dazu gebracht werden, ein Paket zu installieren, das nicht SuperDuper ist.
Obwohl wir unser Installationspaket signiert und notarisiert haben, prüft Gatekeeper diese Notarisierung nicht, wenn es vom macOS-Paketinstaller installiert wird. Daher könnte der Download ausgetauscht werden und wir würden stattdessen dieses Paket installieren. Da die Installation mit erweiterten Rechten erfolgt, könnte dies einem bösartigen Programm eines Drittanbieters, das Sie ebenfalls installieren müssten, Administratorzugriff auf Ihr System ermöglichen.
Aus der CVE:
Ein Problem in Shirt Pocket SuperDuper! V.3.10 und früher ermöglicht es einem lokalen Angreifer, über den Software-Update-Mechanismus beliebigen Code auszuführen.
Dieser Autor ist nicht der Entdecker der Schwachstelle; dieser wird vom SuperDuper-Entwickler als „anonymer Sicherheitsforscher" bezeichnet. Ich nehme keine Anerkennung für die Entdeckung dieser Schwachstelle in Anspruch, ich habe mich nur für eine technische Analyse interessiert.
CVSS 3.1-Score: 7.8 Hoch (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Um diese Schwachstelle zu vermeiden, löschen Sie entweder die SuperDuper!-Anwendung oder wenden Sie das 3.11-Update an.
Warnung: Sie müssen das Update direkt von der Website des Entwicklers herunterladen, um diese Schwachstelle zu vermeiden.
Diese Exploit-Analyse und der Proof of Concept dienen ausschließlich Bildungszwecken. Nutzung auf eigene Gefahr.
Anstatt eine Open-Source-Softwareupdate-Lösung zu implementieren, die von Hunderten von Entwicklern und Sicherheitsexperten getestet wurde, haben die SuperDuper-Entwickler einen eigenen Software-Update-Mechanismus entwickelt, der auf unsicheren Shell-Skripten basiert, die mit Root-Rechten und vollem Festplattenzugriff ausgeführt werden. Da die Software, die während des Updates installiert wird, nicht authentifiziert wird, wird SuperDuper dazu gebracht, die Software eines Angreifers zu installieren. Der Fix des Entwicklers behebt nur den Authentifizierungsaspekt dieser Schwachstelle, nicht die inhärenten Schwachstellen, die sich aus der Verwendung von Shell-Skripten zur Durchführung des Update-Prozesses ergeben.
Der Kommentar des Entwicklers, „Gatekeeper prüft diese Notarisierung nicht", ist irreführend. Gatekeeper greift, wenn man versucht, etwas zu öffnen, das im Browser heruntergeladen wurde, aber das ist bei einem internen Software-Update-Mechanismus einer Anwendung nicht anwendbar. Es liegt zu 100 % in der Verantwortung des Entwicklers, alles zu validieren, was seine Software herunterlädt und auf Ihrem Computer installiert – lassen Sie sich von diesem Entwickler nicht einreden, dass dies ein Versagen von Gatekeeper sei. Zum Kern des Exploits: Ein Angreifer kann SuperDuper dazu bringen, ein alternatives Paket zu installieren, und das geschieht mit erweiterten Rechten. Vermutlich würde es auch mit vollem Festplattenzugriff ausgeführt, da SuperDuper vollen Festplattenzugriff benötigt, um überhaupt etwas zu tun.
Der Blog des Entwicklers sagt außerdem:
Dies kann nur passieren, wenn ein auf Ihrem System laufendes Programm nach SuperDuper sucht, um ein Update durchzuführen, ein echtes Update auf legitimen Wegen angeboten wird und Sie auf Upgrade klicken.
Bei diesem Kommentar ging ich davon aus, dass es wahrscheinlich nicht möglich sein würde, diesen Exploit zu reproduzieren, da er serverseitige Änderungen am Update-Mechanismus beinhalten sollte, die zusammen mit der Veröffentlichung des 3.11-Patches vorgenommen worden wären. Mit anderen Worten: Um zu verhindern, dass ältere Versionen der Software von dieser Schwachstelle betroffen sind, haben sie den Update-Mechanismus doch sicher deaktiviert, oder? Nun ... Ich habe eine ältere Version von SuperDuper heruntergeladen, und als ich sie öffnete, wurde ich sofort mit einer Update-Benachrichtigung† begrüßt – einen Klick von einem möglichen Exploit entfernt. Das fand ich sehr faszinierend – wie soll jemand, der eine ältere Version der Anwendung verwendet, vor dieser Schwachstelle geschützt werden, wenn der Auto-Update-Mechanismus nicht deaktiviert ist? (Dies hängt mit der „Warnung" zusammen, die ich am Anfang dieses Artikels erwähnt habe; ich werde am Ende auf diese Frage zurückkommen.)
† Sozusagen ... Das Ergebnis war eigentlich sehr seltsam. Es gab weder eine Beschreibung des Updates noch einen Sicherheitshinweis; das Fenster war einfach leer mit einem Überspringen- und einem Update-Button. Benutzer älterer Versionen sind also nicht nur nicht vor dem Exploit geschützt, weil der Update-Mechanismus nicht deaktiviert ist, sondern sie werden auch nicht über den Update-Mechanismus über das Problem informiert.
Ich machte weiter. Wenn Sie das Upgrade anwenden, werden die internen Abläufe hilfreicherweise im SuperDuper-Log protokolliert; damit beginnen wir, um zu sehen, wie es funktioniert:
Transcript : UpgradeTranscript.plist
Ext Logging : Disabled
PHASE: 1. Upgrade Application
...ACTION: Downloading upgrade package
......COMMAND => Downloading update package...
......COMMAND => Preparing update package
...ACTION: Installing upgrade package
......COMMAND => Preserving SDAgent owner and mode bits
......COMMAND => Installing upgrade package
installer[3148] <Debug>: Product archive /tmp/SuperDuper!.pkg trustLevel=350
Viele Mac-Apps außerhalb des Mac App Store verwenden das Open-Source-Framework Sparkle, um Software-Updates (sicher) zu verwalten. Nicht so SuperDuper. Wie wir hier sehen, haben sie ein eigenes erstellt, und das ist ein großartiges Beispiel dafür, warum das oft eine schlechte Wahl ist. Software-Upgrade-Mechanismen sind bevorzugte Ziele für Exploits, daher erfordern sie viel Zeit und Fachwissen, um sie sicher zu halten. „UpgradeTranscript.plist" ist ein Verweis auf eine Datei in der SuperDuper-Anwendung, die eine Reihe von Terminal-Befehlen enthält, mit denen SuperDuper das Update herunterlädt und anwendet:
cat /Applications/SuperDuper\!.app/Contents/Resources/Transcripts/UpgradeTranscript.plist
<?xml version="1.0" encoding="UTF-8"?>
...
/usr/bin/curl SDHTTPproxy.Host --silent --show-error --output /tmp/superduper.tar.gz -L SDdownloadURL
cd /tmp; if [ -d superduper_install ]; then /bin/rm -rf superduper_install; fi; /bin/mkdir superduper_install; /usr/bin/tar xzf superduper.tar.gz; /bin/rm /tmp/superduper.tar.gz; if [ -d '/Library/Receipts/SuperDuper!.pkg' ]; then /bin/rm -rf '/Library/Receipts/SuperDuper!.pkg'; fi;