
Exploit und Beschreibung für eine installierte App zur Root-Rechteausweitung durch CVE-2024-48336 (Magisk Bug #8279), Privilegienausweitung / Schwachstelle zur Ausführung beliebigen Codes
Dies ist ein Exploit für eine Sicherheitslücke CVE-2024-48336 in der Magisk-App, die es einer lokalen App ermöglicht, ohne Zustimmung des Benutzers stillschweigend Root-Zugriff zu erlangen.
Die Sicherheitslücke wurde ursprünglich von @vvb2060 gemeldet und von @canyie als PoC umgesetzt. Sie wurde in Canary 27007 behoben.
Demonstrationsvideo zum Ausnutzen dieser Sicherheitslücke, um stillschweigend Root-Rechte zu erlangen und einer beliebigen App Root-Zugriff zu gewähren: https://github.com/canyie/MagiskEoP/blob/main/screen-20220302-093745.mp4
Schritte zur Reproduktion dieser Sicherheitslücke:
Name: Sicherheitslücke zur Ausführung beliebigen Codes in der Magisk-App
Alias: Sicherheitslücke zur Rechteausweitung in Magisk
Product: Magisk
CVE: CVE-2024-48336
Reporter: @vvb2060
Initiales Meldedatum: 2024-08-01
Patch-Datum: 2024-08-21
Offenlegungsdatum: 2024-08-24
Betroffene Versionen: Manager v7.0.0 ~ Canary 27006
Erste gepatchte Versionen: Canary 27007
Problem-/Fehlerbericht: https://github.com/topjohnwu/Magisk/issues/8279
Patch-CL: https://github.com/topjohnwu/Magisk/commit/c2eb6039579b8a2fb1e11a753cea7662c07bec02
Fehler einführender CL: https://github.com/topjohnwu/Magisk/commit/920b60da19212dd8d54d27ada77a30067ce50de6
Fehlerklasse: Unsicheres dynamisches Laden externen Codes
Aufzählung der Schwachstellen:
Die install()-Funktion von ProviderInstaller.java in der Magisk-App vor der Canary-Version 27007 überprüft die GMS-App nicht vor dem Laden, was es einer lokalen, nicht vertrauenswürdigen App ohne zusätzliche Berechtigungen ermöglicht, stillschweigend beliebigen Code in der Magisk-App auszuführen und über ein manipuliertes Paket die Rechte auf Root auszuweiten, auch bekannt als Bug #8279. Für die Ausnutzung ist keine Benutzerinteraktion erforderlich.
Alte Android-Versionen unterstützen einige Algorithmen nicht. Damit Magisk auf diesen Plattformen ordnungsgemäß funktioniert, versucht es, conscrypt aus GMS zu laden, indem es createCallingContext() aufruft. Weitere Informationen finden Sie unter diesem Link: https://t.me/vvb2060Channel/692
GMS ist jedoch nicht auf allen Geräten vorinstalliert. Magisk geht davon aus, dass das Laden von Code von GMS immer sicher ist, aber Angreifer können eine gefälschte, bösartige App mit demselben Paketnamen erstellen. Wenn die Magisk-App gestartet wird, wird der bösartige Code in der Magisk-App ausgeführt. Da der Magisk-App immer Root-Zugriff gewährt wird, können Angreifer stillschweigend Root-Zugriff erlangen und ohne Zustimmung des Benutzers beliebigen Code mit Root-Rechten ausführen.
Hinweis: Dieses Problem wurde in Canary 27007 behoben, indem sichergestellt wird, dass GMS vor dem Laden eine System-App ist. Es ist jedoch weiterhin möglich, dieses Problem auf Geräten mit vorinstalliertem GMS auszunutzen, die jedoch eine fehlerhafte Implementierung der Signaturprüfung haben (z. B. CorePatch).
Hinweis 2: Obwohl eine Behebung dieses Problems in der offiziellen Magisk-App vorhanden ist, gibt es viele andere Instanzen ähnlichen Codes in anderen Apps ohne ordnungsgemäße Behebung, wie diese und diese. Dies ermöglicht möglicherweise eine Ausführung beliebigen Codes in anfälligen Apps und könnte Angreifern ermöglichen, erneut Root-Zugriff zu erlangen, wenn dieser den betroffenen Apps gewährt wird.