Ursache sind laut Wordfence vorhersagbare, über das Web erreichbare Staging-Pfade, die beim Einspielen vollständiger Core-Updates genutzt werden. Die betroffenen Versionen entpacken die neuen Dateien eines Full-Package-Updates in ein vorhersagbares Verzeichnis unterhalb von „wp-content/upgrade" — mitsamt des WordPress-Installers. „Da das Staging-Verzeichnis auf vielen Servern über das Web erreichbar ist, kann ein nicht authentifizierter Angreifer, der den Installer genau im richtigen Moment anfragt, mit der zwischengelagerten WordPress-Kopie interagieren und bis zur Ausführung von PHP-Code vordringen", sagte Alex Thomas, der das Threat Response Team von Wordfence leitet.

Ein erfolgreicher Angriff setzt voraus, dass der Angreifer ein „sehr schmales Zeitfenster trifft, während WordPress ein vollständiges Core-Update auspackt". Wer diese Race Condition gewinnt, kann Code auf dem Server ausführen — sofern folgende Bedingungen erfüllt sind:

  • ein Full-Package-Update, das die Installer-Dateien enthält
  • öffentlicher Web- und PHP-Zugriff auf den Staging-Baum
  • ein vorhersagbarer oder ermittelter Staging-Pfad
  • ausreichend Zeit, um den Angriff abzuschließen, bevor WordPress die temporären Dateien aufräumt

In normalen Laborumgebungen dauert dieses Fenster nur Sekunden. Angreifer fragen deshalb verwundbare Pfade wie „setup-config.php" wiederholt ab, um die Lücke zu treffen. „Zwei der größten Quellen haben kleine Gruppen von Websites rund 14,5 Stunden lang wiederholt abgefragt — ein Verhalten, das dem Versuch entspricht, das kurze Upgrade-Fenster zu erwischen", sagte Thomas. „Andere Quellen testeten viele Varianten von Staging-Verzeichnissen und Versionsnamen." Nicht jede Anfrage habe exakt den verwundbaren Pfad verwendet, doch das anhaltende Polling und die passgenauen Struktur-Tests zeigten, dass die Angreifer die Race Condition schnell verstanden und gezielt angegangen seien.

Betreibern von WordPress-Seiten wird geraten, so schnell wie möglich auf Version 7.1.4 zu aktualisieren. Zusätzlich sollten sie nach verdächtigen Anfragen an PHP-Dateien unterhalb von „wp-content/upgrade" sowie nach unbekannten Administratorkonten, Plugins oder PHP-Dateien suchen.