Ursache der Schwachstelle ist nach Darstellung der Wordfence-Forscher eine fehlende Prüfung von Dateitypen und Dateiendungen für den Zielnamen der hochgeladenen Datei. Dadurch kann ein nicht authentifizierter Angreifer beliebige Dateien hochladen, darunter auch PHP-Skripte, und zusätzlich Dateinamen manipulieren, um Path Traversal zu ermöglichen.

„Die Funktion enthält in der verwundbaren Version vor dem Verschiebevorgang keinerlei Prüfung des Dateityps oder der Dateiendung für den Zielnamen", erklärt Wordfence. Das bedeute, dass nicht nur unbedenkliche Dateien hochgeladen werden könnten, sondern auch solche mit der Endung .php. Da keine Bereinigung der Dateinamen stattfinde, ermögliche der manipulierte Parameter zudem Path Traversal, sodass die Datei sogar in das Webroot-Verzeichnis verschoben werden könne.

Auf diese Weise könnten nicht authentifizierte Angreifer beliebigen schädlichen PHP-Code hochladen und ihn anschließend aufrufen, um Remote Code Execution auf dem Server auszulösen. Als mögliche Folgen nennt die Quelle das Einschleusen von Web-Shells und die vollständige Übernahme der betroffenen Website.

Entdeckt wurde die Lücke vom Sicherheitsforscher Sélim Lanouar (whattheslime), der sie am 8. Januar im Rahmen des Bug-Bounty-Programms von Wordfence einreichte. Nach der Validierung übermittelte Wordfence noch am selben Tag die vollständigen Details an den Hersteller und verteilte über Firewall-Regeln vorläufige Gegenmaßnahmen an seine Kunden.

Nach Prüfung der Patches und einer Teilkorrektur am 10. Februar veröffentlichte der Hersteller mit Version 3.3.27 eine vollständige Behebung, die seit dem 19. März verfügbar ist. Da Wordfence täglich Tausende Ausnutzungsversuche feststellt, wird Nutzern von Ninja Forms File Upload dringend empfohlen, das Update auf die neueste Version vorrangig einzuspielen.