Wenn Sie eine E-Mail von mir erhalten haben, die Sie auf diese Seite verweist, dann deshalb, weil Ihre Website offenbar eine Version von ProfilePress einsetzt (dem WordPress-Plugin, das noch immer unter dem Ordnernamen wp-user-avatar ausgeliefert wird, von ProperFraction), die in den betroffenen Bereich eines bekannten Sicherheitsproblems fällt. Diese Seite erklärt, worum es bei dem Problem geht, wie Sie feststellen, ob es überhaupt auf Ihre Website zutrifft, und wie Sie aktualisieren.

Vorab ein Hinweis zum Namen, denn er sorgt für Verwirrung: Dieses Plugin begann als WP User Avatar und behielt diesen Slug über seine Umbenennung hinweg bei, sodass es in Ihren Dateien unter /wp-content/plugins/wp-user-avatar/ liegt, während die WordPress-Administration es unter seinem vollständigen aktuellen Namen auflistet, “Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress”. WP User Avatar und ProfilePress sind dasselbe Plugin. Es handelt sich durchgehend um ein WordPress-Plugin.

Zuallererst die wichtigste Tatsache zu diesem Hinweis: Eine Version im betroffenen Bereich bedeutet für sich genommen nicht, dass Ihre Website exponiert ist. Das unten beschriebene Problem ist nur ausnutzbar, wenn ProfilePress ein Front-End-Registrierungsformular mit einem Feld zur Rollenauswahl veröffentlicht (den Shortcode [reg-select-role] oder das Feld “reg-select-role” im Drag-and-drop-Formularersteller), das auf eine bestimmte Weise konfiguriert ist. Wenn Ihre Website keine öffentliche Selbstregistrierung anbietet oder Ihre Registrierungsformulare den Besucher keine Rolle wählen lassen, ist sie selbst auf einer betroffenen Version sehr wahrscheinlich nicht exponiert. Ich kann Ihre Plugin-Version aus öffentlichen Dateien auslesen, aber ich kann Ihre Registrierungsformulare nicht sehen, daher ist dieser Hinweis eine vorsorgliche Information, kein bestätigter Befund zu Ihrer Website.

Das Problem ist CVE-2026-12497, eine nicht authentifizierte Rechteausweitung (Privilege Escalation) im Front-End-Registrierungshandler des Plugins (CWE-269, unsachgemäße Rechteverwaltung). Die Stelle, die den CVE zugewiesen hat, hat keine Bewertung der Schwere veröffentlicht, und ich erfinde keine; für die Beurteilung ist entscheidend, dass es sich zwar um ein nicht authentifiziertes Problem handelt, das aber auf eine Rolle unterhalb des Administrators begrenzt ist und von der oben beschriebenen Registrierungskonfiguration abhängt. Es betrifft die Versionen 3.0.0 bis 4.16.17 und ist in 4.16.18 behoben. Wenn Sie eine betroffene Version einsetzen, aktualisieren Sie ProfilePress auf 4.16.18 oder neuer (die aktuelle Version ist 4.16.19). Es gibt keinen Hinweis darauf, dass dieses Problem irgendwo ausgenutzt wird.

Ein Wort zur Dringlichkeit, denn dies ist ein bedingter Hinweis: Wie sehr es Sie betrifft, hängt fast ausschließlich davon ab, ob Sie ein solches Registrierungsformular veröffentlichen. Wenn Sie keine öffentliche Selbstregistrierung mit einem Feld zur Rollenauswahl anbieten, ist das Update routinemäßige Plugin-Wartung. Wenn doch, behandeln Sie das Update bitte als Priorität: In dieser Konfiguration könnte die Schwachstelle einem nicht authentifizierten Besucher erlauben, sich mit einer höheren Rolle zu registrieren, als Ihr Formular anbot (zum Beispiel Editor oder Autor). Selbst dann ist diese Seite eine vorsorgliche Information, kein Vorfallsbericht, und es ist keine Notfallreaktion angezeigt.

Dies ist eine Schwachstelle eines Plugins, nicht des WordPress-Kerns. Ein vollständig aktuelles WordPress schützt Sie nicht, wenn das ProfilePress-Plugin selbst auf einer betroffenen Version ist.

Ist diese Nachricht seriös?

Ja. Dies ist ein Hinweis nach Treu und Glauben im Sinne der verantwortungsvollen Offenlegung von einem unabhängigen Sicherheitsforscher. Ich bitte Sie nicht um Geld, Passwörter oder Zugang zu Ihrer Website, und ich habe nicht versucht, in sie einzudringen, etwas hochzuladen oder etwas auszunutzen.

Ich habe lediglich öffentlich sichtbare Dateien betrachtet, die Ihre Website jedem Besucher bereitstellt (so wie auch Ihre Startseite öffentlich ist), und die Versionsnummer notiert, die das Plugin in seiner öffentlichen readme.txt-Datei veröffentlicht. Das Registrierungssystem habe ich ausdrücklich nicht berührt, und nichts an dieser Prüfung berührt Ihre Daten, Ihren Administrationsbereich oder irgendeinen privaten Teil Ihrer Website (mehr dazu unter Was ich getan und nicht getan habe weiter unten).

Wenn Sie überprüfen möchten, wer ich bin, sehen Sie sich die Kontaktdaten am Ende dieser Seite und die Über-Seite an.

Warum das wichtig ist

ProfilePress ist ein weit verbreitetes Mitgliedschafts-, Benutzerregistrierungs- und Anmelde-Plugin für WordPress (rund 100.000 aktive Installationen). Unter anderem ermöglicht es einer Website, Front-End-Registrierungsformulare zu veröffentlichen, damit Besucher ihre eigenen Konten anlegen können, und diese Formulare können optional ein Feld enthalten, das den Besucher wählen lässt, welche Rolle sein neues Konto haben soll.

In betroffenen Versionen ermittelt der Registrierungshandler die Rollen, die ein Formular anbietet, und die Rollen, die es annimmt, mit zwei verschiedenen Codeteilen. Bei manchen gültigen Konfigurationen des Rollenfelds liest der Code, der die angenommenen Rollen berechnet, die Rollenliste des Formulars nicht aus und greift stillschweigend darauf zurück, jede bearbeitbare Rolle anzunehmen (also jede Rolle außer Administrator). Da außerdem kein Nonce den öffentlichen Registrierungshandler schützt, kann ein nicht authentifizierter Besucher eine Rolle seiner Wahl übermitteln und mit einer höheren Rolle registriert werden, als das Formular anbot, zum Beispiel Editor oder Autor statt des vorgesehenen Abonnenten.

Zwei Dinge helfen bei der Einordnung. Erstens hat die Auswirkung eine feste Obergrenze: Das Plugin schließt die Administratorrolle ausdrücklich von dem aus, was die Registrierung zuweisen kann, sodass dies ein auf eine Rolle unterhalb des Administrators begrenztes Problem der Rechteausweitung ist, keine Übernahme des Servers, keine Übernahme eines Administratorkontos und keine Remote-Code-Ausführung. Zweitens ist der Einstiegspunkt ein veröffentlichtes Registrierungsformular mit einem Feld zur Rollenauswahl, sodass das Problem nur Websites erreicht, die so konfiguriert sind; eine Website ohne öffentliche Selbstregistrierung oder deren Formulare einen Besucher keine Rolle wählen lassen, ist selbst auf einer betroffenen Version sehr wahrscheinlich nicht exponiert. Und um es deutlich zu wiederholen: Es gibt keinen Hinweis auf aktive Ausnutzung: Sie ist nicht im Katalog der Known Exploited Vulnerabilities der CISA enthalten, und mir sind keine Berichte über eine Ausnutzung bekannt.

Wenn meine E-Mail dieses Problem genannt hat, bedeutet das, dass die Version, die Ihre Website meldet, in den betroffenen Bereich fällt. Ich habe nicht getestet, ob Ihre konkrete Website ausnutzbar ist, und ich kann nicht sehen, wie Ihre Registrierungsformulare konfiguriert sind; ich habe lediglich beobachtet, dass die Website eine betroffene Version meldet.

Bin ich betroffen?

Zwei Fragen entscheiden darüber, in dieser Reihenfolge.

Erstens: Veröffentlichen Sie ein ProfilePress-Registrierungsformular, das einen Besucher eine Rolle wählen lässt? Das ist die entscheidende Frage, und nur Sie können sie beantworten.

  • Wenn Ihre Website keine öffentliche Selbstregistrierung anbietet oder ihre Registrierungsformulare kein Feld zur Rollenauswahl enthalten (den Shortcode [reg-select-role] oder das Feld “reg-select-role” im Formularersteller), sind Sie sehr wahrscheinlich nicht exponiert, selbst auf einer betroffenen Version. Ein Update wird dennoch empfohlen, als gewöhnliche Wartung.
  • Wenn Ihre Website doch ein Front-End-Registrierungsformular mit einem Feld zur Rollenauswahl veröffentlicht, betrifft Sie das Problem, und Sie sollten zeitnah aktualisieren.
  • So prüfen Sie es: Sehen Sie in der WordPress-Administration Ihre ProfilePress-Registrierungsformulare auf ein Rollenfeld hin durch, oder öffnen Sie eine Ihrer Registrierungsseiten in einem privaten Browserfenster und sehen Sie, ob einem nicht angemeldeten Besucher eine Auswahl der Kontorolle angeboten wird.

Zweitens: Welche Version setzen Sie ein? Sie müssen mir dabei nicht glauben, und bei diesem Plugin wird die Version zuverlässig gemeldet.

Aus dem WordPress-Administrationsbereich (maßgeblich):

  1. Melden Sie sich in Ihrem WordPress-Dashboard an (üblicherweise unter yourdomain.com/wp-admin).
  2. Gehen Sie zu Plugins dann Installierte Plugins.
  3. Suchen Sie den Eintrag, der als “Paid Membership Plugin … ProfilePress” aufgeführt ist (sein Ordner ist wp-user-avatar), und notieren Sie die unter seinem Namen angezeigte Version. Dies ist die tatsächlich installierte Version.

Aus dem öffentlichen Manifest (keine Anmeldung nötig): öffnen Sie yourdomain.com/wp-content/plugins/wp-user-avatar/readme.txt in einem Browser. Die Zeile Stable tag: nahe dem Anfang ist die Version, die Ihre Installation meldet, und dies ist dieselbe öffentliche Datei, die ich gelesen habe.

Ein kleiner Hinweis, falls Sie zu den Menschen gehören, die Versionsnummern aus Asset-URLs ablesen: Beurteilen Sie die Version anhand des ?ver=-Werts der plugin-eigenen frontend.min.js oder frontend.min.css, denn das ist die ProfilePress-Version. Lesen Sie sie nicht aus der mitgelieferten select2/select2.min.css ab, deren ?ver= (zum Beispiel 7.0.2) die eigene Version der select2-Bibliothek ist und nichts mit der Plugin-Version zu tun hat.

Wenden Sie dann diese Regel an, und beachten Sie, dass Versionen numerisch verglichen werden, nicht alphabetisch:

  • 3.0.0 bis 4.16.17: möglicherweise betroffen (abhängig von der oben genannten Frage zum Registrierungsformular), jetzt aktualisieren.
  • 4.16.18 oder neuer: bereits behoben. Dazu gehört auch die aktuelle Version 4.16.19.
  • Älter als 3.0: von diesem Problem nicht betroffen. Der verwundbare Registrierungshandler kam erstmals mit der ProfilePress-3.0-Umbenennung; die frühere, reine Avatar-Reihe “WP User Avatar” 1.x und 2.x hatte keine Registrierungsfunktion und enthält ihn nicht. (In der Praxis ist praktisch jede aktuelle Installation eine 4.16.x-Version.)

So aktualisieren Sie

Der sicherste Weg ist die Aktualisierung über WordPress selbst, und zwar nach einer Sicherung:

  1. Sichern Sie Ihre Website (Dateien und Datenbank), bevor Sie Änderungen vornehmen. Die meisten Hosting-Anbieter bieten Ein-Klick-Sicherungen an, oder Sie verwenden ein WordPress-Backup-Plugin.
  2. Gehen Sie in der WordPress-Administration zu Dashboard dann Aktualisierungen, oder Plugins dann Installierte Plugins. Wenn ein Update für ProfilePress aufgeführt ist, installieren Sie es von hier aus.
  3. Wenn Sie die Kommandozeile bevorzugen, erledigt WP-CLI dasselbe: wp plugin update wp-user-avatar (der Befehl verwendet den Ordnernamen, wp-user-avatar).
  4. Wenn dort kein Update erscheint, können Sie die aktuelle Version direkt von der Seite des Plugins im WordPress.org-Verzeichnis beziehen, ProfilePress, und über Plugins dann Neues Plugin hinzufügen dann Plugin hochladen aktualisieren.
  5. Bestätigen Sie nach dem Update die neue Versionsnummer (4.16.18 oder neuer; die aktuelle Version ist 4.16.19) anhand der obigen Schritte und prüfen Sie, ob Ihre Registrierungs- und Anmeldeseiten normal funktionieren.

Wenn Sie schon dabei sind, lohnt es sich zu bestätigen, dass WordPress-Kern und Ihre übrigen Plugins aktuell sind, denn dasselbe Prinzip gilt für alle.

Nach dem Update

Ein Update auf 4.16.18 oder neuer schließt das Problem, und für die meisten Websites ist das bereits die ganze Aufgabe. Es gibt keinen Hinweis darauf, dass diese Schwachstelle irgendwo ausgenutzt wurde, daher ist keine Notfallreaktion angezeigt: Sie müssen Ihre Website nicht als kompromittiert behandeln und nicht offline nehmen.

Eine Nachfolgemaßnahme ist erwägenswert, und sie hängt von derselben Registrierungsfrage ab. Wenn Ihre Website ein ProfilePress-Registrierungsformular mit einem Feld zur Rollenauswahl veröffentlichte, während sie auf einer betroffenen Version lief, dann war es zumindest theoretisch möglich, dass ein Besucher sich mit einer höheren Rolle als vorgesehen registriert hat, auch wenn es keinen Beleg dafür gibt, dass das jemand getan hat. In diesem Fall ist eine einzige routinemäßige Vorsichtsmaßnahme sinnvoll:

  • Sehen Sie Ihre jüngsten Benutzerregistrierungen auf jedes Konto durch, das mit einer unerwartet hohen Rolle angelegt wurde (zum Beispiel ein Editor oder Autor, den Sie nicht kennen), auf die gewöhnliche Weise, wie Sie die Aktivität Ihrer Website prüfen würden, und passen Sie alles an, was fehl am Platz wirkt, oder entfernen Sie es.

Betrachten Sie das als gewöhnliche Sicherheits-Routinepflege, nicht als Reaktion auf einen Vorfall. Wenn Sie keine öffentliche Selbstregistrierung mit einem Feld zur Rollenauswahl anbieten, genügt allein das Update.

Was ich getan und nicht getan habe

Um die Prüfung hinter meiner E-Mail vollständig transparent zu machen: Ich habe nur öffentliche Dateien gelesen, die Ihre Website ohnehin jedem Besucher bereitstellt, konkret die öffentliche readme.txt-Datei des Plugins und Ihre Startseite. Ich habe nicht auf Ihren WordPress-Administrationsbereich, Ihre Datenbank oder irgendeinen privaten Teil der Website zugegriffen. Insbesondere habe ich den verwundbaren Registrierungspfad nicht berührt, und ich habe nichts getestet oder ausgenutzt.

Dies ist eine versionsbasierte Beobachtung: Ihre Website meldet eine Version im betroffenen Bereich. Da dieses Problem konfigurationsabhängig ist, ist eine Website in diesem Bereich möglicherweise überhaupt nicht exponiert (wenn sie keine öffentliche Selbstregistrierung anbietet oder ihre Formulare kein Feld zur Rollenauswahl enthalten), und sie kann auch bereits durch andere Mittel geschützt sein, etwa eine Web Application Firewall. Dieser Hinweis ist keine Aussage darüber, dass Ihre Website zum Zeitpunkt meiner Prüfung ausnutzbar war.

Ich habe keinen Webmaster / ich komme nicht weiter

Wenn Sie nicht die Person sind, die die Website betreut, leiten Sie diese Seite bitte an diejenige Person weiter, die das tut (Ihr Webentwickler, Ihre Agentur oder Ihr Hosting-Anbieter). Sie wird die obigen Schritte schnell wiedererkennen.

Wenn Sie die Website selbst betreuen und nicht weiterkommen, helfe ich Ihnen gerne kostenlos, in die richtige Richtung zu finden. Melden Sie sich über die Kontaktdaten unten.

Kontakt

Evan Harris, Sicherheitsforscher

Ich wende mich bei Problemen wie diesem ausschließlich deshalb an Betreiber, um ihnen zu helfen, ihre Websites abzusichern. Wenn Sie nicht erneut kontaktiert werden möchten, teilen Sie mir das einfach mit, und ich werde das respektieren.

Quellen

Offizielle Hinweise und Nachverfolgung

Hersteller / Plugin