Skip to content

Lokale Avatare und die Sicherheit

Kaum hatte ich Avatare und die DSGVO veröffentlicht, meldete sich Frank Westphal von rivva.de bei mir und wies mich netterweise auf eine Sicherheitslücke in meinem Skript hin. Vielen Dank dafür! Ich hatte zum Herunterladen der Avatare die Funktion wp_remote_get benutzt, ohne auf das Kleingedruckte zu achten: "If the URL is user-controlled, use wp_safe_remote_get() instead." Dadurch...

@scaldra.net
Aug 28, 20262 min read

aum hatte ich Avatare und die DSGVO veröffentlicht, meldete sich Frank Westphal von rivva.de bei mir und wies mich netterweise auf eine Sicherheitslücke in meinem Skript hin. Vielen Dank dafür!

Ich hatte zum Herunterladen der Avatare die Funktion wp_remote_get benutzt, ohne auf das Kleingedruckte zu achten: „If the URL is user-controlled, use wp_safe_remote_get() instead.“ Dadurch wäre theoretisch eine sogenannte Server Side Request Forgery, bei der die erwartete Bild-URL z. B. http://127.0.0.1:8080/ ausgetauscht wird und der Aufrufer damit Zugriff auf Interna meines Servers bekommen könnte. Mit wp_safe_remote_get wird das verhindert.

Dass mir so etwas bei Gravatar oder Bluesky passiert, halte ich für ausgeschlossen. Aber ich hatte das Plugin bewusst so offen gehalten, dass es für Avatare von beliebigen Plattformen funktioniert, da ich da auch noch andere Basteleien vorhabe.

Also habe ich alles abgesichert. Neben wp_safe_remote_get gibt es jetzt einen Stapel von Prüfungen, ob die Avatar-URL valide ist. Als doof klassifiziere ich sie, wenn mindestens einer der folgenden Gründe vorliegt: HTTP, private IP, Redirect, DNS-Auflösung fehlgeschlagen, falscher Content-Type oder Downloadfehler. Und wenn doof, dann gibt es keinen Avatar.

Alternativ könnte ich auch einfach die Avatar-URL gegen eine feste Liste prüfen und z.B. nur Gravatar zulassen. Da ich aber perspektivisch auch Avatare von Fediverse-Servern zeigen will, bleibt es bei dieser Lösung.

Gestern meldete sich Frank noch einmal und schrieb, dass Matthias Pfefferle beim Blockroll-Plugin inzwischen auch nachbessert und die Icons in den Blockroll-Block direkt einbettet. Sobald er das im Main-Branch hat, wird es auch hier in der Blogroll Bilder geben.

Falls also jemand avatar-cache benutzt, bitte auf die Version 1.1.1 upgraden.

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions