← AEU Hosting Blog

Upload-Sicherheitslücke in WordPress ermöglicht Angreifern das Einschleusen ausführbarer Dateien

2026-10-11

Upload-Sicherheitslücke in WordPress ermöglicht Angreifern das Einschleusen ausführbarer Dateien

WordPress-Websites mit anfälligen Versionen von Bricksforge sind laut Patchstack aktiven Angriffsversuchen ausgesetzt, bei denen hochgeladene Bilder in ausführbare Dateien verwandelt werden sollen. Der Sicherheitshinweis vom 8. Oktober 2026 beschreibt CVE-2026-85097, eine Schwachstelle, für deren Ausnutzung sich Angreifer nicht anmelden müssen und die eine Remotecodeausführung (RCE) ermöglichen kann. Das bedeutet, dass Außenstehende Anweisungen auf dem Server der Website ausführen können. Website-Betreiber sollten auf Bricksforge 3.1.8.10 oder neuer aktualisieren.

Betroffen sind Versionen bis einschließlich 3.1.8.9. Patchstack bewertet die Schwachstelle nach dem Common Vulnerability Scoring System (CVSS) mit 10,0, dem höchstmöglichen Schweregrad, und verzeichnet den ersten beobachteten Ausnutzungsversuch am 7. Oktober 2026 um 21:47:17 UTC. Der Sicherheitshinweis verweist für die Update-Informationen des Herstellers auf das Bricksforge-Änderungsprotokoll. Die gemeldeten Aktivitäten belegen, dass Angreifer versuchen, die Schwachstelle auszunutzen. Eine Zahl erfolgreich kompromittierter Websites nennt der Hinweis jedoch nicht.

Bricksforge erweitert Bricks Builder, ein visuelles Werkzeug zum Erstellen von WordPress-Websites. Zu seinen Funktionen gehören erweiterte Formulare, Animationen, benutzerdefinierte Interaktionen, die Verwaltung dynamischer Daten und Anpassungen des Administrationsbereichs. Die Schwachstelle liegt in der Verarbeitung hochgeladener Dateien durch die Formulare; Angreifer benötigen dafür kein WordPress-Konto.

Wie aus einem Bild eine ausführbare Datei wird

Das Plugin prüft zunächst den MIME-Typ einer Datei, eine Kennzeichnung ihres Inhaltsformats. Wird anschließend jedoch ein Formular abgeschickt, vertraut es den Metadaten aus dem Browser des Besuchers, also den beschreibenden Feldern, die zusammen mit der Datei übermittelt werden. Insbesondere überprüft es das Feld url innerhalb von temporaryFileUploads nicht. Dadurch können Angreifer ein Bild als Quelle angeben und zugleich ein Ziel mit einer Dateiendung für PHP festlegen, die von WordPress verwendete Programmiersprache.

Patchstack beschreibt eine vierstufige Angriffskette. Zunächst beschafft sich ein Angreifer über bricksforge_regenerate_nonce eine gültige Nonce, ein Token zur Überprüfung von Anfragen. Dieser AJAX-Endpunkt, der Browser-Anfragen im Hintergrund verarbeitet, ist ohne Anmeldung zugänglich. Als Nächstes lädt der Angreifer eine GIF/PHP-Polyglottdatei hoch, die zugleich ein gültiges Bild ist und PHP-Code enthält. Sie besteht die anfängliche Prüfung des Inhaltstyps und gelangt in das temporäre Upload-Verzeichnis. Anschließend sendet der Angreifer ein Formular ab, das auf dieses akzeptierte Bild verweist, gibt aber eine url mit einer PHP-Dateiendung an. Bricksforge verwendet die nicht vertrauenswürdigen Metadaten, um den Inhalt am PHP-Ziel abzulegen. Beim Aufruf dieser Datei führt der Server den darin eingebetteten Code aus.

Patchstack nennt bricksforge/includes/elements/pro-forms/actions/init.php als die Stelle, an der die Metadaten aus temporaryFileUploads in die Verarbeitung gelangen, und bricksforge/includes/elements/pro-forms/actions/base.php als die Codestelle, die anschließend beliebige Uploads zulässt. Eine erfolgreiche Ausnutzung kann den Einsatz von Webshells ermöglichen, also Skripten zur Fernsteuerung einer kompromittierten Website, sowie Änderungen an Inhalten, den Zugriff auf sensible Daten und einen dauerhaften Zugang für Angreifer.

Was die Angriffsanfragen enthalten

Bis auf einen nutzten alle von Patchstack aufgezeichneten Versuche POST-Anfragen, die Daten an eine Website senden, an /wp-json/bricksforge/v1/form_submit. Dies ist der REST-API-Endpunkt des Plugins zum Absenden von Formularen, eine Webadresse, die strukturierte Anfragen annimmt. Die andere Anfrage richtete sich mit der Aktion bricksforge_form_submit an /wp-admin/admin-ajax.php. Jede Anfrage enthielt einen gezielt manipulierten Parameter temporaryFileUploads.

Ein wichtiges Warnzeichen ist eine Abweichung zwischen dem Quelldateipfad und der Ziel-URL, also der Webadresse. Im normalisierten Beispiel von Patchstack lautet der Wert von field form-field-file, der Wert von file.file verweist auf /var/www/example.com/wp-content/uploads/bricksforge/tmp/img_example.gif, file.url verweist auf die entsprechende Webadresse img_example.php, und file.type lautet image/gif. Dies sind Werte zur Veranschaulichung, keine gemeldete Adresse eines Opfers. Bei 95 % der erfassten Anfragen endete der serverseitige Pfad auf .gif oder .png; die meisten davon kombinierten ihn mit einem PHP-bezogenen Ziel.

Die meisten Versuche verwiesen auf /wp-content/uploads/bricksforge/tmp/. Andere versuchten, ausführbare Dateien in regulären WordPress-Upload-Ordnern abzulegen, darunter /wp-content/uploads/2026/10/. Dabei verwendeten sie Namen nach dem Muster login_admin_*.php, wobei das Sternchen für einen variablen Teil des Namens steht.

Patchstack beobachtete mehrere Versuche, die Filterung von Dateiendungen zu umgehen. Zu den übermittelten Endungen gehörten .php, .php5, .php7, .php8, .phtml, .pht, .phtm und .phps. Varianten mit unterschiedlicher Groß- und Kleinschreibung waren .PHP, .Php, .pHp und .PHTML. Angreifer verwendeten außerdem URL-Kodierung, die Zeichen durch spezielle Zeichenfolgen darstellt, sowie doppelte Kodierung, bei der diese Umwandlung zweimal angewendet wird. Beispiele waren %2ephp, .%70hp und .%2570%2568%2570. Andere Anfragen veränderten die Felder path, name, originalFilename und url oder ließen sie weg, um zu testen, wie das Plugin sie verarbeitete.

Verteilte Aktivitäten, keine bestätigte Zuordnung

Bei seiner Überwachung fand Patchstack eine Gruppe von 44 IP-Adressen, die innerhalb von Sekunden 56 identische Anfragen sendeten, und eine weitere Gruppe, in der drei Adressen 25 Varianten von PHP-Dateiendungen und Kodierungen an derselben temporären Datei ausprobierten. IP-Adressen kennzeichnen Netzwerkverbindungen. Diese Muster deuten auf automatisierte Angriffe mit wechselnden Proxys hin, also zwischengeschalteten Verbindungen, die die scheinbare Herkunft verändern, oder auf eine verteilte Infrastruktur. Sie belegen nicht, dass ein einzelner Angreifer die Aktivitäten steuert.

Es gab 63 unterschiedliche Quell-IP-Adressen, wobei die sechs aktivsten für etwa 46 % der Anfragen verantwortlich waren. Patchstack führt 177.75.57.20 bei EXPLORERNET, einem brasilianischen Festnetz-Internetanbieter, mit 8 AbuseIPDB-Meldungen und ohne Eintrag in der CleanTalk-Sperrliste auf; 23.97.62.146 bei Microsoft Azure mit mehr als 1.270 Meldungen und ohne Eintrag; 84.247.60.125 bei HostRoyale mit 12 Meldungen und einem Eintrag; 38.154.185.97 bei B2 Net Solutions mit 11 Meldungen und einem Eintrag; 150.109.16.166 bei Tencent mit 185 Meldungen und einem Eintrag; sowie 153.75.90.146 bei Cloudzy mit 35 Meldungen und einem Eintrag. Dabei handelt es sich um die im Sicherheitshinweis angegebenen Reputationsprüfungen, nicht um aktuelle unabhängige Messungen.

Die Quellen verteilen sich auf Rechenzentren, Cloud-Dienste, virtuelle private Netzwerke (VPNs), die Datenverkehr über eine andere Verbindung leiten, Proxy-Dienste sowie Privatkunden- oder Festnetzanschlüsse. Die aktivste Adresse, 177.75.57.20, fiel auf, weil sie zu einem Festnetzanbieter statt zu einem Rechenzentrum gehörte und zuvor nur wenige Missbrauchsfälle zu ihr verzeichnet waren.

Aktualisieren und anschließend auf frühere Einbrüche prüfen

Installieren Sie die bereinigte Version und bitten Sie die für die Wartung der Website zuständige Person, die Protokolle der Webanfragen und Anwendungen zu prüfen. Relevante Anzeichen sind form_submit-Anfragen mit temporaryFileUploads, Bildpfade in Kombination mit PHP-Zielen, Aufrufe zur Nonce-Erzeugung mit anschließenden Uploads und Formularübermittlungen sowie wiederholte Änderungen an Dateiendungen oder der Groß- und Kleinschreibung. Prüfen Sie Upload-Ordner auf unerwartete PHP-Dateien, insbesondere login_admin_*.php, sowie auf Anfragen, die neu angelegte ausführbare Dateien aufrufen. Bei Websites, auf denen zuvor anfällige Versionen ohne Schutz liefen, sind außerdem rückwirkende Prüfungen auf ungewöhnliche Aktivitäten und unbefugte Änderungen erforderlich.