Behoben: Löschen beliebiger Dateien in Embed Privacy ≤ 1.12.4
Veröffentlicht: – 2 Kommentare
Am 11. Mai 2026 benachrichtigte mich das Team von Patchstack über eine Sicherheitslücke in Embed Privacy 1.12.3 und niedriger, die es einem Angreifer ermöglichte, jegliche Datei, auf die PHP Zugriff hatte, zu löschen. Nachfolgend möchte ich darlegend, was dann passierte.
Zeitleiste
Der Forscher „daroo“ übermittelte am 10. Mai 2026 eine Sicherheitslücke über das Patchstack Vulnerability Disclosure Program für Embed Privacy.
Am 11. Mai 2026 wurde sie von Patchstack verifiziert und die genannte Benachrichtigung an mich wurde versendet.
Am selben Tag, genauer gesagt nach 21 Minuten, lud ich eine Anpassung hoch, die die Sicherheitslücke behob.
Am nächsten Morgen, dem 12. Mai 2026, verifizierte Patchstack, dass die Anpassung die Sicherheitslücke erfolgreich schloss.
Zwei Stunden später veröffentlichte ich Version 1.12.4 von Embed Privacy, um die Sicherheitslücke schnellstmöglich zu schließen.
Am 29. Juni 2026 veröffentlichte Patchstack den gesamten Bericht.
Die Sicherheitslücke
Sofern der automatische Download von Video-Vorschaubildern aktiviert wurde (aktuell unterstützt für SlideShare, Vimeo, WordPress TV und YouTube), speichert Embed Privacy den Dateinamen des Vorschaubilds als Metadaten zu dem jeweiligen Beitrag bzw. der jeweiligen Seite. Dann, in regelmäßigen Abständen, prüft Embed Privacy, ob das Video immer noch eingebunden ist. Wenn nicht, löscht es das Vorschaubild, dessen Dateinamen in den Metadaten gespeichert ist.
In Versionen vor 1.12.4 hat Embed Privacy nicht geprüft, ob der Dateiname tatsächlich nur den Namen der Datei beinhaltete. Dadurch konnte man Dateien aus einem anderen Verzeichnis löschen.
Wenn der Dateiname youtube_12345.jpg lautet, wurde die Datei unter /wp-content/uploads/embed-privacy/thumbnails/youtube_12345.jpg gelöscht.
Ein böswilliger Benutzer konnte jedoch den Dateinamen als beispielsweise ../../../../wp-config.php speichern, was dann zum Löschen der Datei unter /wp-content/uploads/embed-privacy/thumbnails/../../../../wp-config.php führt, wodurch am Ende die /wp-config.php von WordPress gelöscht wurde und die Website so nicht mehr aufrufbar war.
Jeder, der Beiträge erstellen kann (nicht zwingenderweise auch Veröffentlichen), konnte solche Metadaten speichern und damit die Website auf diesem Weg angreifen.
Die Korrektur
Embed Privacy 1.12.4 verwendet nur den basename der Datei, was heißt, dass nur der letzte Teil eines Pfades als Dateiname verwendet wird – dieser ist naturgemäß bereits nur der Dateiname. Praktisch gesehen wird lediglich der Wert nach dem letzten Slash zurückgegeben. Im oben genannte Fall wird damit aus ../../../../wp-config.php nur noch wp-config.php, wodurch der finale Pfad /wp-content/uploads/embed-privacy/thumbnails/wp-config.php wird. Da es dort keine solche Datei gibt, löscht Embed Privacy auch nichts.
An dieser Stelle ein Dank an daroo für das melden des Problems sowie Patchstack für ihr Vulnerability Disclosure Program!
@epiphyt Kurze Anmerkung: Könntest du das im Changelog als Security labeln? So klingt das irgendwie zu harmlos.
Außerdem ist auf Deutsch der falsche Text im Changelog: https://docs.epiph.yt/de/embed-privacy/changelog.html
Remote-Antwort
Ursprüngliche Kommentar-URL
Dein Profil
Warum muss ich mein Profil eingeben?
Diese Website ist Teil des ⁂ Open Social Web, einem Netzwerk miteinander verbundener sozialer Plattformen (wie beispielsweise Mastodon, Pixelfed, Friendica und andere). Im Gegensatz zu zentralisierten sozialen Medien befindet sich dein Profil auf einer Plattform deiner Wahl, und du kannst mit Menschen auf verschiedenen Plattformen interagieren.
Wenn du dein Profil eingibst, können wir an dein Profil senden, wo du diese Aktion abschließen kannst.
Ich habe den CVE nun auch dort mit angegeben und den deutschen Eintrag korrigiert. Danke für den Hinweis!