Eine Use-After-Free-Schwachstelle in Webkit (CVE-2021-30858) wurde im September identifiziert und gepatcht. Frühe Tests und Quellcode-Untersuchungen deuten darauf hin, dass die Schwachstelle auch in der PS4-Version des Webkits vorhanden ist, obwohl noch nicht sicher ist, bis zu welcher Firmware und ob diese Schwachstelle in einen vollwertigen Exploit umgewandelt werden kann oder nicht.
CVE-2021-30858 Use-After-Free in Webkits removeFromFacesLookupTable
Die Sicherheitsforscherin Maddie Stone vom Google Project Zero-Sicherheitsteam hat bereits im September eine Use-After-Free-Schwachstelle in Webkit gemeldet und offengelegt , als Teil der Bemühungen des Teams, das Webkit von Apple zu untersuchen.
Das Problem liegt darin, einem FonceFaceSet ein ungültiges FontFace-Objekt hinzuzufügen. Das Hinzufügen funktioniert nicht, aber das System versucht dann trotzdem, das Objekt (das nicht hinzugefügt wurde) zu entfernen, was zu einem „Use After Free“ führt.
Code mit dem Fehler:
void CSSFontFaceSet::removeFromFacesLookupTable(const CSSFontFace& Gesicht, const CSSValueList& FamilienToSearchFor) { for (auto& item: familienToSearchFor) { String familyName = CSSFontFaceSet::familyNameFromPrimitive(downcast(item.get())); if (Familienname.isEmpty()) fortsetzen; auto iterator = m_facesLookupTable.find(familyName); ASSERT(Iterator != m_facesLookupTable.end()); bool gefunden = falsch; for (size_t i = 0; i < iterator->value.size(); ++i) { if (iterator->value[i].ptr() == &face) { gefunden = wahr; iterator->value.remove(i); brechen; } } ASSERT_UNUSED(gefunden, gefunden); if (!iterator->value.size()) m_facesLookupTable.remove(Iterator); } }
Konzeptnachweis Javascript:
var fontFace1 = new FontFace("font1", "", {}); var fontFaceSet = new FontFaceSet([fontFace1]); fontFace1.family = "font2";
Use-After Free Webkit-Sicherheitslücke wirkt sich auf die PS4 aus
Das Problem scheint im Nachhinein ziemlich offensichtlich zu sein, und der Proof-of-Concept-Code konnte leicht reproduziert werden, um ihn auf der PS4 zu testen. @NazkyYT hat einen Proof-of-Concept-Code, der unter https://nazky.github.io/PS4CVE202130858/ ausgeführt wird . Sie können den Browser Ihrer PS4 auf die Proof-of-Concept-URL verweisen, um zu sehen, inwieweit Ihre Konsole betroffen ist. (oder führen Sie Ihren eigenen auf einem lokalen Server aus, wenn Sie es vorziehen).
Mehrere Personen haben bestätigt, dass sich die Schwachstelle tatsächlich auf PS4s bis einschließlich Firmware 8.52 reproduziert. Einige Benutzer haben berichtet, dass die Schwachstelle auf ihrer PS4 mit 9.00 nicht „funktioniert“, aber eine Analyse der Webkit-Version in PS4 9.00 scheint darauf hinzuweisen, dass der Fehler dort immer noch vorhanden ist. In meinen persönlichen Tests reagiert 9.00 beim Versuch des Proof-of-Concept mit einem Fehler "Nicht genügend Speicher", was für mich ein gutes Zeichen ist, bis das Gegenteil bewiesen ist.
Es ist auch erwähnenswert, dass Firmware 9.00 nur wenige Tage nach dem Patchen dieses Problems in Webkit veröffentlicht wurde, was bedeutet, dass es ziemlich unwahrscheinlich ist, dass Sony Zeit hatte, den Webkit-Patch rechtzeitig in Firmware 9.00 zu importieren. Alles deutet auf das Problem der Firmware 9.00 hin, wenn da nicht ein paar frühe Testberichte wären.
Ich hatte Befürchtungen, dass der Proof of Concept ungültig ist, wenn man bedenkt, dass der FontFaceSet-Konstruktor eine Safari-spezifische Sache ist ( Quelle ):
Insbesondere wenn Sie den PoC-Code in einem Browser wie Chrome ausprobieren, erhalten Sie eine Fehlermeldung im Formular: „FontFaceSet ist nicht definiert“. Das bedeutet, dass der PoC in so ziemlich jedem Browser außer Safari fehlschlägt, bevor er die Schwachstelle erreicht. Aber ich konnte unabhängig überprüfen, ob der FonceFaceSet-Konstruktor auf der PS4 existiert. Mit anderen Worten, soweit ich das beurteilen kann, besteht eine erhebliche Wahrscheinlichkeit, dass sich diese Sicherheitsanfälligkeit auf die PS4 auswirkt, bis zu 9,00 inbegriffen.
PS4 9.00 Potenziell anfällig für Webkit Use-After-Free, was kommt als nächstes?
Die Tatsache, dass eine neue Webkit-Sicherheitslücke auf der PS4 auftaucht, ist möglicherweise eine große Neuigkeit für die PS4-Szene. Aber bevor dies für den Endbenutzer nützlich ist, müssen einige Dinge passieren.
Zuallererst sollten Sie, unabhängig von Ihrer aktuellen Firmware, nicht aktualisieren, wenn Sie diese Möglichkeit nutzen möchten. Je niedriger Ihre Firmware ist, desto höher sind Ihre Chancen für einen zukünftigen Hack oder Exploit.
Zweitens müssen PS4-Hacker diese Webkit-Sicherheitslücke untersuchen, um zu verstehen, 1) ob sie tatsächlich in einen nützlichen Exploit umgewandelt werden kann (dies kann viel Zeit in Anspruch nehmen) und 2) ob 9.00 wirklich betroffen ist oder nicht. Der Übergang von einer Schwachstelle zu tatsächlich ausnutzbarem Code ist nicht etwas, das sofort passieren wird.
Wenn dieser Webkit-Exploit auf der PS4 genutzt werden kann, könnte er zwei Hauptanwendungen haben:
- Erstens könnte dieser Exploit potenziell „stabiler“ sein als der aktuelle Webkit-Exploit, der bis Firmware 7.55 verwendet wurde, d. h. er könnte verwendet werden, um die Stabilität bestehender Jailbreaks bis Firmware 7.55 zu verbessern.
- Zweitens, wenn in Zukunft ein Kernel-Exploit für die Firmware 8.xx oder 9.00 aufgedeckt wird, könnten der Webkit-Exploit und der Kernel-Exploit kombiniert werden , um der Szene einen Jailbreak für die Firmwares 8.xx zu bescheren, oder man kann träumen, bis zu 9.00 . Dies ist ein guter Zeitpunkt, um alle daran zu erinnern, dass ein Webkit-Exploit allein für einen Jailbreak nicht ausreicht. Es ist ein Einstiegspunkt zum Ausführen von unsigniertem Code, muss dann aber mit einem Exploit zur Rechteausweitung (auch bekannt als Kernel-Exploit) kombiniert werden, um einen tatsächlichen Jailbreak zu erhalten.
Es ist natürlich noch ein langer Weg, bis all dies passiert, aber dies könnte die beste Neuigkeit sein, die die PS4-Szene seit langem hatte.