Bricksforge vulnerability wird für remote code execution ausgenutzt
Die als CVE-2026-85097 erfasste Bricksforge vulnerability wird laut Telemetriedaten von Patchstack aktiv ausgenutzt, um von Angreifern kontrollierten Code auf WordPress-Websites auszuführen. Die Schwachstelle hat einen CVSS-Wert von 10.0, die höchste Einstufung auf der Standardskala für den Schweregrad von Sicherheitslücken. Betroffen sind Bricksforge-Versionen bis einschließlich 3.1.8.9; behoben wurde die Schwachstelle in Version 3.1.8.10. Patchstack beobachtete die Ausnutzung erstmals am 7. Oktober 2026 um 21:47:17 UTC.
Bricksforge erweitert Bricks Builder, ein visuelles Tool zum Erstellen von Websites für WordPress. Es ergänzt erweiterte Formulare, Animationen, benutzerdefinierte Interaktionen, dynamische Datenverwaltung und Anpassungsmöglichkeiten für das Backend. Die anfällige Komponente kann ohne Authentifizierung erreicht werden, ein Angreifer benötigt also weder ein Konto noch ein Passwort. Bei dem Problem handelt es sich um eine arbitrary file upload vulnerability, also eine Schwachstelle, durch die ein Angreifer eine Datei seiner Wahl auf der Website ablegen kann. In diesem Fall kann die hochgeladene Datei zu remote code execution (RCE) führen, also dazu, dass Befehle oder Programme von einem anderen Ort aus auf dem Server ausgeführt werden.
Der Angriff funktioniert, weil Bricksforge eine Datei in einer Phase überprüft, sich in einer späteren Phase jedoch auf vom Angreifer bereitgestellte Informationen verlässt. Beim ersten upload validiert das Plugin den MIME type der Datei, eine Kennzeichnung, die angibt, ob es sich bei der Datei um ein Bild, ein Dokument oder eine andere Art von Inhalt handelt. Wenn anschließend ein Formular übermittelt wird, validiert es jedoch das Feld url innerhalb des Parameters temporaryFileUploads nicht ordnungsgemäß.
Ein Angreifer kann zunächst über den nicht authentifizierten AJAX-Endpoint bricksforge_regenerate_nonce einen gültigen nonce anfordern. Ein nonce ist ein kurzlebiger Wert, der belegen soll, dass eine Anfrage legitim ist, während AJAX eine Methode ist, mit der Websites Daten austauschen, ohne die gesamte Seite neu zu laden. Anschließend lädt der Angreifer ein GIF/PHP polyglot hoch, also eine einzelne Datei, die als GIF-Bild gilt, aber zugleich PHP enthält, die Programmiersprache, die üblicherweise für den Betrieb von WordPress verwendet wird. Da die Datei wie ein Bild erscheint, besteht sie die Prüfung des MIME type und gelangt in das temporäre Upload-Verzeichnis von Bricksforge.
Danach übermittelt der Angreifer ein Formular, bei dem der serverseitige Dateipfad weiterhin auf das genehmigte Bild verweist, während die angegebene Ziel-URL mit einer PHP-Erweiterung endet. Bricksforge vertraut diesen Metadaten und schreibt den Inhalt der Datei an das PHP-Ziel. Wird die daraus entstandene Datei aufgerufen, führt der Server den darin eingebetteten Code aus. Patchstack identifizierte die entsprechende Verarbeitung in bricksforge/includes/elements/pro-forms/actions/init.php und bricksforge/includes/elements/pro-forms/actions/base.php.
Eine erfolgreiche Ausnutzung ermöglicht dem Angreifer arbitrary PHP execution. Laut Patchstack kann dieser Zugriff verwendet werden, um web shells zu installieren. Dabei handelt es sich um schädliche Dateien, die eine fortlaufende Fernkontrolle ermöglichen, Inhalte der Website verändern, vertrauliche Informationen auslesen und dauerhaften Zugriff auf die Website aufrechterhalten können.
Mit Ausnahme eines einzigen Versuchs richteten sich alle von Patchstack erfassten Angriffe gegen den Endpoint der Bricksforge REST API zur Formularübermittlung unter POST /wp-json/bricksforge/v1/form_submit. Eine REST API ist eine Schnittstelle, über die Software strukturierte Anfragen an eine andere Anwendung sendet. Die verbleibende Anfrage verwendete /wp-admin/admin-ajax.php mit der Aktion bricksforge_form_submit. Jede Anfrage enthielt einen manipulierten Parameter temporaryFileUploads.
Das kennzeichnende Muster war eine Abweichung zwischen dem Pfad einer Bilddatei und einem PHP-Ziel. Bei 95 % der erfassten Anfragen endete der serverseitige Pfad auf .gif oder .png, während die meisten dieser Anfragen ihn mit einer PHP-bezogenen Ziel-URL kombinierten. Die meisten Dateien wurden über /wp-content/uploads/bricksforge/tmp/ geleitet. Bei einigen Versuchen wurden Dateinamen nach dem Muster login_admin_*.php verwendet, um sie in regulären WordPress-Upload-Ordnern abzulegen, darunter /wp-content/uploads/2026/10/.
Die Angreifer variierten außerdem ihre payloads, um mögliche Wege zur Umgehung von Erweiterungsfiltern zu testen. Patchstack erfasste .php, .php5, .php7, .php8, .phtml, .pht, .phtm und .phps sowie Schreibweisen mit gemischter Groß- und Kleinschreibung wie .PHP, .Php, .pHp und .PHTML. Zu den Versuchen gehörten URL-codierte und doppelt codierte Formen wie %2ephp, .%70hp und .%2570%2568%2570. Bei weiteren Anfragen wurden die Felder path, name, originalFilename und url geändert oder weggelassen, um zu untersuchen, wie das Plugin unvollständige oder manipulierte Metadaten verarbeitete.
Die Telemetriedaten von Patchstack zeigen Anzeichen einer koordinierten Automatisierung. Ein Cluster umfasste 44 IP-Adressen, die innerhalb weniger Sekunden 56 identische Anfragen sendeten. Ein weiterer umfasste drei Adressen, die 25 Varianten von Erweiterungen und Codierungen mit derselben temporären Datei testeten. Patchstack erklärte, diese Muster entsprächen automatisierten Aktivitäten unter Einsatz rotierender proxies oder verteilter Infrastruktur, reichten jedoch nicht aus, um die Kampagne einem bestimmten threat actor zuzuordnen.
Insgesamt erfasste Patchstack 63 eindeutige Quell-IP-Adressen. Die sechs aktivsten erzeugten etwa 46 % aller Anfragen: 177.75.57.20 bei EXPLORERNET, einem brasilianischen Festnetz-ISP; 23.97.62.146 bei Microsoft Azure; 84.247.60.125 bei HostRoyale; 38.154.185.97 bei B2 Net Solutions; 150.109.16.166 bei Tencent; und 153.75.90.146 bei Cloudzy. AbuseIPDB verzeichnete für diese Adressen jeweils 8, mehr als 1.270, 12, 11, 185 und 35 Meldungen. CleanTalk führte die Adressen von HostRoyale, B2 Net Solutions, Tencent und Cloudzy auf, nicht jedoch die Adressen von EXPLORERNET oder Microsoft Azure.
Die Infrastruktur umfasste Datacenter-Systeme, Cloud-Dienste, VPN- oder Proxy-Dienste sowie private oder festnetzgebundene Verbindungen. Patchstack bezeichnete 177.75.57.20, die aktivste Adresse, als Ausreißer, da sie zu einem brasilianischen Festnetz-ISP gehörte und nahezu keine vorherige Missbrauchshistorie aufwies.
Website-Betreiber und Administratoren sollten Bricksforge unverzüglich auf Version 3.1.8.10 oder neuer aktualisieren. Logs sollten auf Anfragen an die beiden Endpoints zur Formularübermittlung, die Verwendung von temporaryFileUploads, mit PHP-Zielen kombinierte Bildpfade, wiederholte Varianten von Dateierweiterungen und Aufrufe von bricksforge_regenerate_nonce geprüft werden, denen ein upload und eine Formularübermittlung folgten. Administratoren sollten außerdem nach unerwarteten PHP-Dateien im temporären Ordner von Bricksforge oder in anderen Upload-Verzeichnissen suchen, insbesondere nach login_admin_*.php, sowie nach Anfragen an neu erstellte PHP-Dateien.
Bei Websites, auf denen eine betroffene Version ohne Schutzmaßnahmen eingesetzt wurde, ist eine rückwirkende Prüfung der Logs und der Hosting-Umgebung auf unbefugte Änderungen, nicht erklärbare Anwendungsaktivitäten und unerwartete PHP-Dateien erforderlich. Laut Patchstack war seine RapidMitigate-Traffic-Regel für CVE-2026-85097 bereits vor dem ersten beobachteten Angriff aktiv und blockiert die gemeldeten Versuche, ohne den Plugin-Code zu verändern. Gleichzeitig wird die Überwachung auf neue payloads und bypasses fortgesetzt. Für Betreiber, die ihre WordPress-Infrastruktur nicht allein verwalten möchten, bietet AEU Hosting vollständig abgesichertes Managed WordPress Hosting. Das Update von Bricksforge bleibt die direkte Lösung für diese Schwachstelle.