Zum Inhalt springen

Sicherheitslücke im „Favorites“-Plugin? Warum ich eine eigene WordPress-Merkliste entwickelt habe

  • von

tl;dr: Für das WordPress-Plugin „Favorites“ wurde mit CVE-2025-60202 eine kritische Sicherheitslücke veröffentlicht. Da zum Zeitpunkt meiner Entscheidung kein offizieller Patch verfügbar war, habe ich die Favoritenfunktion auf Pfadfinder-Spiele.de durch eine eigene, bewusst schlanke Lösung ersetzt. Das Ergebnis: Pfadfinder Saved Games – eine lokale Merkliste ohne Login, ohne Datenbankeinträge und ohne externe Abhängigkeiten.

Die Ausgangslage: Spiele merken auf Pfadfinder-Spiele.de

Seit vielen Jahren betreibe ich die Website Pfadfinder-Spiele.de. Dort finden Gruppenleitungen, Jugendverbände und Pfadfinder zahlreiche Spielideen für Gruppenstunden, Lager und Aktionen.

Immer wieder wurde der Wunsch geäußert, interessante Spiele für später speichern zu können. Die Herausforderung dabei: Die Funktion sollte möglichst einfach sein. Niemand möchte sich nur zum Merken eines Spiels registrieren, ein Passwort vergeben oder eine E-Mail-Adresse hinterlegen.

Deshalb fiel die Wahl zunächst auf das WordPress-Plugin Favorites. Es bot genau die benötigte Funktionalität: einen Merken-Button und eine persönliche Favoritenliste.

Die Sicherheitswarnung: CVE-2025-60202

Vor einiger Zeit wurde für das Plugin „Favorites“ die Schwachstelle CVE-2025-60202 veröffentlicht. Dabei handelt es sich um eine sogenannte Local File Inclusion (LFI).

Unter bestimmten Umständen kann eine solche Schwachstelle dazu führen, dass lokale Dateien des Servers ausgelesen werden. Dazu könnten beispielsweise Konfigurationsdateien gehören, die sensible Informationen enthalten.

Je nach Serverkonfiguration und weiteren Rahmenbedingungen kann daraus ein erhebliches Sicherheitsrisiko entstehen.

Für mich war die entscheidende Frage jedoch nicht, wie wahrscheinlich ein Angriff ist, sondern wie sinnvoll es ist, eine potenziell verwundbare Komponente weiter zu betreiben, wenn die eigentliche Funktion vergleichsweise einfach ist.

Deshalb habe ich mich entschieden, nach einer Alternative zu suchen.

Warum ich keine andere Plugin-Lösung gewählt habe

Natürlich gibt es zahlreiche Plugins für Favoriten- oder Wunschlistenfunktionen.

Viele davon bringen jedoch deutlich mehr Funktionen mit, als ich tatsächlich benötige. Benutzerkonten, Datenbankspeicherung, umfangreiche Einstellungen, Tracking-Funktionen oder zusätzliche Abhängigkeiten erhöhen die Komplexität und damit auch den Wartungsaufwand.

Für meinen Anwendungsfall war die Anforderung denkbar einfach:

  • Spiele merken
  • Ohne Login
  • Ohne personenbezogene Daten
  • Ohne Server-Speicherung
  • Möglichst wartungsarm

Anstatt ein weiteres Plugin einzusetzen, habe ich mich deshalb für eine eigene Lösung entschieden.

Die Lösung: Pfadfinder Saved Games

Das Ergebnis ist ein kleines WordPress-Plugin mit dem Namen Pfadfinder Saved Games.

Die Grundidee ist bewusst simpel: Die Merkliste wird ausschließlich im Browser des Besuchers gespeichert. Dazu wird die lokale localStorage-API verwendet.

Es werden keine Benutzerkonten angelegt, keine Datenbankeinträge geschrieben und keine personenbezogenen Daten verarbeitet.

Funktionen

  • Merken-Button auf Spielseiten
  • Ausgabe einer persönlichen Merkliste per Shortcode
  • Speicherung ausschließlich im Browser
  • Unterstützung von Deutsch und Englisch
  • Barrierearme Bedienung mit Tastatur und Screenreader-Unterstützung
  • Synchronisierung zwischen mehreren geöffneten Browser-Tabs
  • Automatische Bereinigung nicht mehr verfügbarer Inhalte
  • Keine externen Bibliotheken oder Frameworks

Was das Plugin bewusst nicht macht

Nicht jede Funktion macht ein Plugin besser.

Deshalb verzichtet Pfadfinder Saved Games bewusst auf einige Dinge:

  • Keine Benutzerregistrierung
  • Keine Passwortverwaltung
  • Keine E-Mail-Adressen
  • Keine Tracking-Funktionen
  • Keine Werbe- oder Analyse-Cookies
  • Keine externen Dienste
  • Keine zusätzlichen Datenbanktabellen

Dadurch bleibt die Lösung überschaubar und leicht nachvollziehbar.

Technische Besonderheiten

Ein wichtiger Sicherheitsvorteil besteht nicht darin, dass die Software selbst entwickelt wurde. Entscheidend ist vielmehr die geringe Komplexität.

Weniger Funktionen bedeuten:

  • weniger Angriffsfläche
  • weniger Abhängigkeiten
  • weniger Wartungsaufwand
  • einfachere Überprüfbarkeit des Quellcodes

Einige technische Details:

REST-API statt direkter Datenbankzugriffe

Die Merkliste lädt ihre Inhalte über einen eigenen REST-Endpunkt. Dabei werden ausschließlich die benötigten Informationen übertragen:

  • Titel
  • URL
  • Beitragsbild

Schutz vor typischen Web-Schwachstellen

Das Plugin verwendet ausschließlich validierte Post-IDs und verzichtet auf dynamische Datei-Includes auf Basis von Benutzereingaben. Dadurch wird die Angriffsfläche für LFI-Schwachstellen erheblich reduziert.

Zusätzlich werden Ausgaben sowohl serverseitig als auch clientseitig bereinigt, um Risiken durch unerwartete Inhalte zu minimieren.

Gutenberg-Unterstützung

Die Erkennung der verwendeten Shortcodes funktioniert auch innerhalb verschachtelter Gutenberg-Blöcke. Dadurch werden benötigte Skripte nur dort geladen, wo sie tatsächlich verwendet werden.

Barrierefreiheit

Von Anfang an wurde auf eine möglichst zugängliche Bedienung geachtet:

  • Tastaturbedienung
  • ARIA-Attribute
  • Statusmeldungen für Screenreader
  • Sichtbare Fokuszustände

Der Umstieg

Der Wechsel von Favorites auf die neue Lösung war unkompliziert:

  1. Favorites deaktivieren und entfernen.
  2. Pfadfinder Saved Games installieren.
  3. Eine Seite mit dem Shortcode [saved_games] anlegen.
  4. Fertig.

Da die Favoriten lokal im Browser gespeichert werden, gibt es keine Migration von Datenbankeinträgen. Für die meisten Besucher war das unproblematisch.

Datenschutz

Die Merkliste speichert ausschließlich Beitrags-IDs im Browser des jeweiligen Besuchers.

Es werden keine personenbezogenen Daten an den Server übertragen und keine Nutzerprofile erstellt.

Nach meiner Einschätzung handelt es sich damit um eine technisch notwendige Komfortfunktion ohne Tracking-Zweck. Die konkrete rechtliche Bewertung sollte jedoch immer im Kontext der jeweiligen Website erfolgen.

Eine kleine Lektion in Sachen Sicherheit

Die Geschichte rund um CVE-2025-60202 zeigt, wie abhängig viele Websites von Drittanbieter-Plugins sind.

Das bedeutet nicht, dass Eigenentwicklungen automatisch sicherer sind. Aber kleine, klar abgegrenzte Lösungen lassen sich oft einfacher verstehen, prüfen und warten als umfangreiche All-in-One-Plugins mit zahlreichen Funktionen.

Für meinen Anwendungsfall war eine maßgeschneiderte Lösung die sinnvollste Entscheidung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert