WordPress-Dateiverwaltungs-Plugin mit kritischen Fehlern behaftet

  • Die Bugs ermöglichen eine Reihe von Angriffen auf Websites, darunter das Löschen von Blog-Seiten und Remote-Code-Ausführung.

    Ein kritischer Cross-Site-Scripting (XSS)-Bug betrifft WordPress-Websites, auf denen das Frontend File Manager-Plugin läuft, und ermöglicht es entfernten, nicht authentifizierten Benutzern, JavaScript-Code in verwundbare Websites einzuschleusen, um Admin-Benutzerkonten zu erstellen.

    Der Fehler ist einer von sechs kritischen Fehlern, die das WordPress-Plugin Frontend File Manager in den Versionen 17.1 und 18.2 betreffen und auf mehr als 2.000 Websites aktiv sind. Für jeden der Fehler, die am Montag öffentlich bekannt gegeben wurden, gibt es Patches.

    Die Fehler öffnen Websites, auf denen das Plugin läuft, für eine breite Palette von Remote-Code-Execution-Attacken, die Angreifern die Möglichkeit geben, Beiträge zu ändern oder zu löschen, ein Spam-Relay einzurichten, eine Privilegienerweiterung zu erreichen und gespeicherte Cross-Site-Scripting (XSS)-Attacken auszuführen, so die Forscher des Ninja Technologies Network.

    Das WordPress-Plugin wurde entwickelt, um Benutzern das Hochladen von Dateien in den Adminbereich einer Website zu ermöglichen. Jede Datei wird in einem privaten Verzeichnis gespeichert, sodass jeder Benutzer nach der Anmeldung seine eigenen Dateien verwalten kann.

    Gespeicherte XSS

    Der XSS-Bug ermöglicht unauthentifizierte Content-Injection, so die Forscher.

    Die unauthentifizierte AJAX-Aktion “wpfm_edit_file_title_desc” lädt eine Funktion (“wpfm_edit_file_title_desc”), die verwendet wird, wenn jemand einen Website-Beitrag editiert. Es wird jedoch nicht überprüft, ob der Benutzer seine eigenen Beiträge bearbeitet, und es fehlt eine Sicherheits-Nonce. Daher kann ein nicht authentifizierter Benutzer den Inhalt und Titel jeder Seite und jedes Beitrags im Blog ändern.

    “Wenn der Beitragstyp wpfm-files ist, ist es außerdem möglich, JavaScript-Code in den Beitragstitel einzuschleusen, da das Plugin sich nur auf die WordPress-Funktion esc_attr verlässt, um den $_REQUEST zu bereinigen[‘file_title’] Variable, die außerhalb der HTML-Attribute im Backend-Bereich ausgegeben wird”, fügten die Forscher hinzu. “Der JavaScript-Code wird ausgeführt, wenn ein Admin-Benutzer die Einstellungsseiten des Plugins besucht.”

    Daher könnte ein nicht authentifizierter Benutzer JavaScript-Code injizieren, um ein Administrator-Benutzerkonto zu erstellen.

    Privileg-Eskalation

    Ein Privilege-Eskalations-Problem stammt von der Funktion “wpfm_get_current_user”, die verwendet wird, um eine Benutzer-ID aus dem Skript “nmedia-user-file-uploader/inc/helpers.php” abzurufen, heißt es in einem Beitrag vom Montag.

    “Es ruft die Benutzer-ID von der WordPress-Funktion get_current_user_id ab, wenn der Benutzer authentifiziert ist, oder von der Plugin-Option wpfm_guest_user_id, wenn der Benutzer nicht eingeloggt ist”, erklärten die Forscher. “Allerdings kann der Benutzer, ob er authentifiziert ist oder nicht, eine beliebige ID an die $_GET[‘file_owner’] Variable zuweisen, um $current_user_id L318 zu überschreiben, was zu einer Privilegieneskalation führen kann.”

    Authentifizierte Einstellungsänderung und willkürlicher Dateiupload

    Ein weiteres Problem erlaubt es einem authentifizierten Benutzer, die Einstellungen des Plugins zu ändern.

    “Die Funktion ‘wpfm_save_settings’ aus dem Skript ‘nmedia-user-file-uploader/inc/admin.php’ wird von der AJAX-Aktion wpfm_save_settings (authentifiziert) geladen”, erklären die Forscher. “Es wird verwendet, um die Einstellungen des Plugins zu speichern. Es gibt keine Fähigkeitsprüfung oder Security Nonce.”

    Ein Angreifer kann es also ausnutzen, indem er PHP zur Liste der erlaubten Dateitypen hinzufügt.

    “Mit der AJAX-Aktion ‘wpfm_upload_file’ könnte der Angreifer dann ein PHP-Skript hochladen, das als ‘http://example.com/wp-content/uploads/user_uploads/<username>/<file>.php’ gespeichert und zugänglich ist, was zu einer Remote-Code-Ausführung führen würde”, so die Analyse.

    Unauthentifiziertes, willkürliches Löschen von Posts

    Eine vierte Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, alle Seiten und Beiträge im Blog zu löschen.

    “Die AJAX-Aktion ‘wpfm_delete_file’ (unauthentifiziert) lädt die Funktion ‘wpfm_delete_file’ aus dem Skript ‘nmedia-user-file-uploader/inc/files.php'”, so die Forscher. “Es nimmt eine ID, $_REQUEST[‘file_id’]und löscht den entsprechenden Beitrag L708.”

    Das Problem ist, dass das Plugin nicht überprüft, ob der Benutzer berechtigt ist, den entsprechenden Beitrag zu löschen, und dass ihm eine Sicherheits-Nonce fehlt.

    “Es gibt nur einen Aufruf der unsicheren Funktion ‘wpfm_get_current_user’, aber das Ergebnis, ‘$curent_user’, wird im Code nicht einmal überprüft”, so Ninja Technologies Network.

    Unauthentifizierte Post-Meta-Änderung und willkürlicher Dateidownload

    Angreifer können auch beliebige Post-Meta-Daten ändern, was zum Beispiel zu einem beliebigen Dateidownload führen kann, so die Firma.

    “Die AJAX-Aktion .wpfm_file_meta_update’ (unauthentifiziert) lädt die Funktion ‘wpfm_file_meta_update’ aus dem Skript ‘nmedia-user-file-uploader/inc/files.php'”, erklärten die Forscher. “Sie wird verwendet, um die Metadaten von Posts zu ändern. Es gibt keine Fähigkeitsprüfung oder Nonce, und die Daten werden nicht validiert oder sanitized.”

    Angreifer können die Lücke ausnutzen, um Post-Metadaten zu verändern, indem sie “wpfm_dir_path” an “$meta_key” und “wp-config.php” an “$meta_value” zuweisen und dann das Skript “w5p-config.php” anstelle der hochgeladenen Datei herunterladen, so die Analyse

    Unauthentifizierte HTML-Injektion

    Das letzte Problem ermöglicht es einem nicht authentifizierten Benutzer, das Blog als Spam-Relay zu verwenden.

    Der Fehler rührt von der Funktion “wpfm_send_file_in_email” im Skript “nmedia-user-file-uploader/inc/callback-functions.php” her, die es einem Benutzer ermöglicht, eine E-Mail zu senden

    “Da diese im HTML-Format gesendet wird und nicht bereinigt ist, ist es möglich, HTML-Code (Textformatierung, CSS, Bilder usw.) einzuschleusen, um die E-Mail vollständig anzupassen”, heißt es in dem Beitrag. “Zusätzlich, selbst wenn ‘$_REQUEST[‘file_id’]’ leer oder ungültig ist, wird die Nachricht trotzdem versendet.

    WordPress-Plugin-Probleme

    Um sich vor Angriffen zu schützen, sollten Anwender auf die Version 18.3 oder höher aktualisieren, die am 26. Juni veröffentlicht wurde.

    WordPress-Plugins bieten weiterhin ausnutzbare Bugs für Angreifer, die Websites kompromittieren wollen.

    Im Januar warnten Forscher vor zwei Schwachstellen (eine davon kritisch) in einem WordPress-Plugin namens Orbit Fox, die es Angreifern ermöglichen könnten, bösartigen Code in anfällige Websites zu injizieren und/oder die Kontrolle über eine Website zu übernehmen.

    Ebenfalls in diesem Monat wurde festgestellt, dass ein Plugin namens PopUp Builder, das von WordPress-Websites zum Erstellen von Popup-Anzeigen für Newsletter-Abonnements verwendet wird, eine Schwachstelle aufweist, die von Angreifern ausgenutzt werden könnte, um Newsletter mit benutzerdefinierten Inhalten zu versenden oder Newsletter-Abonnenten zu löschen oder zu importieren.

    Im Februar wurde ein ungepatchter, gespeicherter Cross-Site-Scripting (XSS)-Sicherheitsfehler gefunden, der potenziell 50.000 Benutzer des Contact Form 7 Style-Plugins betreffen könnte.

    Und im März wurde entdeckt, dass das Plus Addons for Elementor Plugin für WordPress eine kritische Sicherheitslücke enthält, die Angreifer ausnutzen können, um schnell, einfach und aus der Ferne eine Website zu übernehmen. Zunächst als Zero-Day-Bug gemeldet, sagten Forscher, dass es aktiv in der Wildnis angegriffen wurde.

    Informieren Sie sich über unsere kommenden kostenlosen Live- und On-Demand-Webinar-Veranstaltungen – einzigartige, dynamische Diskussionen mit Cybersicherheitsexperten und der Threatpost-Community.

    Einige Teile dieses Artikels stammen aus:
    threatpost.com