- Vorstellung eines Falls, bei dem sich ein iPhone mithilfe von Eigenschaften und Schwachstellen des Darwin-Notification-Systems unbrauchbar machen ließ
- Die Schwachstelle wurde als CVE-2025-24091 registriert, und der Melder erhielt eine Bug-Bounty von 17.500 US-Dollar (25 Millionen Won)
- Ausgenutzt wurde, dass sich ohne besondere Berechtigungen Benachrichtigungen auf Systemebene senden ließen, wodurch sich das gesamte iOS-Gerät lahmlegen ließ
- Mit einer einfachen einzeiligen Codezeile ließ sich der Modus "Restore in Progress" erzwingen, was zu einer Denial-of-Service-(DoS)-Attacke mit wiederholten Neustarts führen konnte
- Mit dem iOS-18.3-Update wurde die Schwachstelle behoben, indem für das Senden wichtiger Darwin Notifications eingeschränkte Berechtigungen (Entitlements) erforderlich wurden
Darwin Notifications
- Darwin Notifications sind in iOS und macOS ein Mechanismus auf CoreOS-Ebene, um zwischen Prozessen einfache Nachrichten auszutauschen
- Mit
notify_post wird ein Ereignis gesendet, mit notify_register_dispatch wird ein Ereignis empfangen; außerdem können Statuswerte (state) gelesen oder geschrieben werden
- Senden und Empfangen sind ohne besondere Berechtigungen möglich, und es gibt keine Sicherheitsprüfung
- Verschiedene Systemkomponenten waren von dieser Legacy-API abhängig
Überblick über die Schwachstelle
- Alle Prozesse in Apples Betriebssystemen können Darwin Notifications empfangen, ohne dass dafür besondere Berechtigungen nötig sind
- Es gab eine strukturelle Lücke, durch die selbst sandboxed Apps Darwin Notifications senden konnten
- Wegen der begrenzten Datenmenge war das Risiko eines Abflusses sensibler Daten nicht besonders hoch
- Das Senden bestimmter kritischer Systembenachrichtigungen, etwa einer Meldung zum Start einer Wiederherstellung, konnte das gesamte System beeinflussen
- Dadurch wurde die Möglichkeit einer Denial-of-Service-(DoS)-Attacke entdeckt
EvilNotify und VeryEvilNotify
- Mit der EvilNotify-App ließen sich verschiedene Systemreaktionen zwangsweise auslösen
- Anzeige eines Symbols zur Flüssigkeitserkennung
- Blockieren von Wi‑Fi und Erzwingen der Mobilfunknutzung
- Blockieren von Gesten auf Sperrbildschirm und im Kontrollzentrum
- Wechsel in den Verloren-Modus von „Wo ist?“ usw.
- Insbesondere konnte man mit der einzelnen Zeile
notify_post("com.apple.MobileSync.BackupAgent.RestoreStarted") den Zustand Restore in Progress auslösen
- Dieser Modus schlägt fehl, weil das Gerät tatsächlich nicht wiederhergestellt wird; die einzige Lösung ist das Drücken der Schaltfläche „Neustart“
- Die VeryEvilNotify-App wurde mithilfe einer Widget-Erweiterung so umgesetzt, dass der Angriff auch nach einem Neustart automatisch erneut starten konnte
- Die Widget-Erweiterung wird vom System regelmäßig im Hintergrund ausgeführt und ruft die Funktion
notify_post auf, um den Modus „Wiederherstellung läuft“ immer wieder auszulösen
- Dadurch konnte das Gerät vollständig unbrauchbar werden
Zeitlinie und CVE-Registrierung
- 26. Juni 2024: Einreichung des ersten Vorfallberichts bei Apple
- 27. September 2024: Nachricht von Apple, dass an Gegenmaßnahmen gearbeitet wird
- 28. Januar 2025: Problem behoben und Anspruch auf Bug Bounty bestätigt
- 11. März 2025: Offizielle Registrierung als CVE-2025-24091 und Behebung in iOS/iPadOS 18.3
- Die Bug-Bounty-Prämie betrug 17.500 US-Dollar
Reaktion und Gegenmaßnahmen
- Für das Senden sensibler Darwin Notifications sind nun eingeschränkte Berechtigungen (Entitlements) erforderlich
- Zum Beispiel wurde die bisherige Benachrichtigung
com.apple.MobileBackup.BackupAgent.RestoreStarted in com.apple.private.restrict-post.MobileBackup.BackupAgent.RestoreStarted umbenannt
- Auch Prozesse, die diese Benachrichtigung empfangen, verwenden den neuen Namen, um unbefugtes Senden durch nicht autorisierte Apps zu blockieren
- Dieses System eingeschränkter Berechtigungen wurde ab iOS 18.2 Beta 2 eingeführt und in iOS 18.3 vollständig abgeschlossen
1 Kommentare
Hacker-News-Kommentare
Interessant ist, dass diese API für die gesamte Nutzung rund um Einstellungen und das Veröffentlichen von Benachrichtigungen keine Berechtigungen verlangt
Die beschriebene Schwachstelle macht das Gerät nicht wirklich zum „Brick“
17.500 US-Dollar sind ziemlich ordentlich
Großartige Arbeit
Ich kann mir vorstellen, was für ein harter Tag das im Büro gewesen sein muss, als das iOS-Core-Team das geprüft hat
Mit einer einzigen Codezeile konnte man ein Gerät in den Modus „Wiederherstellung läuft“ versetzen
Ich vermisse die alten IRC-Zeiten
Es deutet darauf hin, dass sich auch Drittanbieter-Apps mit eigenem Benachrichtigungssystem auf ähnliche Weise imitieren ließen
Die Priorität könnte niedrig gewesen sein, weil Nutzer eine bösartige App aktiv installieren müssten
Dieser Beitrag war eine großartige Lektüre
notify_postinzwischen geworden ist