Eine Sicherheitslücke in Apple Safari, die Anfang des Jahres in freier Wildbahn ausgenutzt wurde, wurde ursprünglich 2013 behoben und im Dezember 2016 wieder eingeführt, so ein neuer Bericht von Google Project Zero.

Die Schwachstelle mit der Bezeichnung CVE-2022-22620 (CVSS-Score: 8.8) betrifft eine Use-after-free-Schwachstelle in der WebKit-Komponente, die durch speziell gestaltete Webinhalte zur Ausführung von beliebigem Code ausgenutzt werden kann.

Anfang Februar 2022 stellte Apple Patches für den Fehler in Safari, iOS, iPadOS und macOS bereit, räumte aber gleichzeitig ein, dass die Schwachstelle „möglicherweise aktiv ausgenutzt wurde“.

„In diesem Fall wurde die Variante vollständig gepatcht, als die Schwachstelle 2013 erstmals gemeldet wurde“, sagte Maddie Stone von Google Project Zero. „Allerdings wurde die Variante drei Jahre später im Rahmen einer großen Überarbeitung wieder eingeführt. Die Schwachstelle existierte dann noch 5 Jahre lang, bis sie im Januar 2022 als Zero-Day in-the-wild behoben wurde.“

Während die Fehler von 2013 und 2022 in der History API im Wesentlichen identisch sind, sind die Wege zur Auslösung der Sicherheitslücke unterschiedlich. Spätere Code-Änderungen, die Jahre später vorgenommen wurden, ließen die Zero-Day-Schwachstelle wie einen „Zombie“ von den Toten auferstehen.

Stone wies darauf hin, dass der Vorfall nicht nur bei Safari auftritt, und betonte, dass man sich ausreichend Zeit für die Überprüfung von Code und Patches nehmen sollte, um doppelte Korrekturen zu vermeiden und die Sicherheitsauswirkungen der durchgeführten Änderungen zu verstehen.

„Sowohl die Commits vom Oktober 2016 als auch die vom Dezember 2016 waren sehr umfangreich. Der Commit im Oktober änderte 40 Dateien mit 900 Hinzufügungen und 1225 Löschungen. Der Commit im Dezember änderte 95 Dateien mit 1336 Hinzufügungen und 1325 Löschungen“, so Stone.

„Es scheint unhaltbar zu sein, dass Entwickler oder Prüfer die Sicherheitsauswirkungen jeder Änderung in diesen Commits im Detail verstehen, vor allem, weil sie mit der Lebenszeitsemantik zusammenhängen.