
Write-up und Proof of Concepts für CVE-2021-30862, 1-Klick-RCE-Bug in iOS iTunes U
Im Jahr 2021 veröffentlichte CodeColorist seine Analysen zu den Mistuned-Sicherheitslücken, einer Reihe von Schwachstellen, die den iTunes Store betreffen und einen Ein-Klick-Remote-Codeausführung ermöglichen. Bemerkenswerterweise demonstrierte er das Ausführen des Taschenrechners ohne jegliche Speicherkorruption, sondern lediglich durch einen Logikfehler. In dieser Zeit untersuchte ich URL-Schemata in verschiedenen Apps, da ich zwei Jahre zuvor einen Sicherheitsvorfall bezüglich des itms-services:// URL-Schemas des App Stores gemeldet hatte. Ein URL-Schema, das ich fand und das dem sehr ähnlich war, war das itms-itunesu:// URL-Schema von iTunes U. Damals hatte ich jedoch keine Ahnung, dass es benutzereingegebene Daten akzeptierte, und dachte, es würde nur zum Öffnen der App verwendet, aber später stellte ich fest, dass dies nicht der Fall war.
Beim Lesen seiner Analyse fiel mir besonders ein Punkt auf: Jung Hoon Lees Sandbox-Escape mittels itmss:// während Pwn2Own 2014. Damals akzeptierte der iTunes Store beliebige URLs und lud sie bereitwillig in sein SUWebView, selbst wenn sie nicht von Apple stammten (CVE-2014-8840). An dieser Stelle können Sie vielleicht erraten, worauf ich hinauswill. Mir fiel auf, dass itmss:// dem URL-Schema von iTunes U sehr ähnlich war, also beschloss ich zu prüfen, ob iTunes U google.com in seine Web-View laden würde. Und siehe da, es tat es. Dann beschloss ich, dieselbe iTunes-API zu verwenden, die auch bei den Mistuned-Fehlern genutzt wurde, um zu versuchen, den Taschenrechner zu öffnen, in der festen Erwartung, dass es nicht funktionieren würde, aber zu meiner größten Überraschung funktionierte es. Es stellte sich heraus, dass sowohl der iTunes Store als auch iTunes U dieselbe API verwenden. Und was ist mit dem UAF aus Mistuned? War der auch in iTunes U vorhanden? Es stellte sich heraus, dass auch das der Fall war, und ich konnte einen Proof-of-Concept erstellen, der iTunes U durch doppeltes Freigeben von Speicher zum Absturz bringt (POC_6.html). Ich habe einige der POCs, die ich an Apple geschickt habe, sowie einen Versuch eines fakeobj/addrof-Primitives aus dieser Schwachstelle in main.js mit Hilfe der Mistuned-Analyse beigefügt, obwohl ich mich erinnere, dass ich das fakeobj-Primitive nicht vollständig zum Laufen gebracht habe. Weitere Informationen zu den Auswirkungen dieser Schwachstellen finden Sie in CodeColorists Analyse, aber kurz gesagt ermöglichen sie das Abrufen einer Vielzahl sensibler Daten vom Opfer sowie potenzielle Ein-Klick-RCE.