Ausgehend von CVE-2025-43300 hab ich mich mal bisschen in die Thematik eingelesen, weil es regelmäßig saftige Exploits im Kontext von Bildverarbeitung gibt (besonders nennenswert ist hier FORCEDENTRY, Teil der Pegasus 0-Click-Attacke aus 2021).
Apple nutzt die hauseigenen Frameworks ImageIO / CoreGraphics. ImageIO liest die Bilddateien, CoreGraphics rendert. ImageIO ist dabei die API, welche von (3rd-Party-)Apps angesteuert wird.
Für das eigentliche Decoding für die verschiedenen Bildformate kommen verschiedene Open-Source-Decoder-Bibliotheken zum Einsatz (libjpeg, libpng, libtiff, libwebp) - oder Hersteller-Forks dieser Bibliotheken.
Das ist de facto der Industriestandard - die meisten Softwarehersteller setzen auf diese Libs oder eigene Forks davon, weil komplex und sehr teuer. Die meisten sind in C/C geschrieben, woraus viele Lücken resultieren - nicht weil C/C unsicher ist, sondern weil es schwer zu handhaben ist.
Apple macht bei 43300 keine konkreten Angaben um die Reproduzierbarkeit dieser Exploits zu erschweren, aber die Wortwahl in der CVE Beschreibung lässt vermuten, dass es sich um eine Lücke in einer der zugrundeliegenden Bibliotheken handelt.
Die großen Hersteller versuchen zwar mit Fuzzing (Massenhaftes generieren randomisierter oder mutierter Eingabewerte) und anderen Maßnahmen wie Compilerhärtung oder Isolation in Sandboxes gegenzuhalten, aber irgendwas rutscht halt immer durch. Irgendjemand ist am Ende halt doch schlau und engagiert genug, tiefer zu suchen. Und da kann man Entwicklern auch kaum einen Vorwurf machen. Ab einer bestimmten Masse wird es schwer überschaubar.
Das Kernproblem ist hier meiner Einschätzung nach, wie oft in der IT, dass das Paradigma des Minimalismus als Voraussetzung für Sicherheit nicht umgesetzt wird, sowohl im B2C als auch im B2B -meistens aus Nutzerfreundlichkeit. Da muss dann irgendein 20 Jahre altes Format supportet werden, weil niemand Bock hat, irgendwelche Altlasten endlich wegzumigrieren oder dem Kunden knallhart zu sagen, dass Dinge aufgrund von potentieller Unsicherheit einfach nicht mehr supportet werden. Aber natürlich sind auch moderne und vielgenutze Formate wie webp (CVE‑2023‑4863) oder jpeg (CVE‑2022‑37769, CVE‑2021‑39516, CVE‑2025‑2804) betroffen - also ist das auch nur eine Teillösung. Und das sind keine irrelevanten Lücken, ermöglichen teilweise DoS bis RCE - teilweise 0-Click.
Neuentwicklung in Rust wird teilweise gemacht, aber ist natürlich enorm komplex und teuer. Außerdem entstehen dadurch natürlich wieder neue Lücken, die bisher unbekannt sind. Ein stückweit bleibt es immer ein Katz und Maus Spiel. Und das tatsächliche Ausmaß der Probleme ist wahrscheinlich gar nicht bekannt. Ich will nicht wissen, wie viele Geheimdienste auf kritischen Lücken sitzen, die niemand kennt und die aktiv ausgenutzt werden.
Dem Normalverbraucher ist das natürlich egal - aber ich würde mir wünschen, dass Anbieter wie Apple oder Google Switches einbauen, sodass Poweruser bestimmte Formate deaktivieren können - weil man sie ohnehin nicht nutzt. Wenn ein Fenster nicht existiert, kann darüber auch niemand einbrechen. Da muss ich mich dann nicht auf den Fensterhersteller verlassen.
Glücklicherweise verfolgt Apple mit dem Lockdown-Mode exakt diesen Ansatz: Reduzieren von Angriffsvektoren durch Deaktivierung von Funktionen bzw. der automatisierten Verarbeitung (z.B. Vorschaubilder) sodass zumindest 0-Click erschwert wird und eine manuelle Nutzerinteraktion erforderlich ist. Ich würde mir allerdings mehr Konfigurationsmöglichkeiten wünschen. Der Normalverbraucher kann ja weiter mit den Defaults fahren.
Sehr spannend und komplex. Was denkt ihr dazu?