Eine schwerwiegende Sicherheitslücke wurde im beliebten WordPress-Plugin „GiveWP“ entdeckt, das für Spenden und Fundraising genutzt wird. Die Schwachstelle, die als CVE-2024-5932 identifiziert wurde, setzt über 100.000 WordPress-Websites potenziellen Remote-Code-Ausführungsangriffen (RCE) aus.

Details zur Sicherheitslücke CVE-2024-5932

Die Schwachstelle ermöglicht es Angreifern, durch eine unsichere Deserialisierung von Benutzereingaben in PHP-Objekten, beliebigen Code auf dem Server auszuführen oder unautorisierte Aktionen durchzuführen. Betroffen sind alle Versionen des „GiveWP“-Plugins bis einschließlich Version 3.14.1.

Der Fehler tritt in der Funktion „give_process_donation_form()“ auf, die für die Verarbeitung von Spendenformularen verantwortlich ist. Diese Funktion überprüft die Parameter der Eingaben nicht ausreichend, was es Angreifern ermöglicht, schädliche PHP-Objekte einzuschleusen und auszuführen. Dies kann zur Ausführung von beliebigem Code und zur Löschung kritischer Dateien wie der wp-config.php führen, was das Zurücksetzen der gesamten Website ermöglicht und den Angreifern die Kontrolle über die Seite gibt.

Technische Details und Exploit-Beispiel

Ein Angreifer könnte die Schwachstelle nutzen, um beispielsweise die Datei wp-config.php zu löschen. Dazu könnte ein schädlicher Payload wie folgt aussehen:

php
class Product {
    public $price;
    public $productName;
    public $savedPriceFile;
    function __construct($price, $productName) {
        $this->price = $price;
        $this->productName = $productName;
        $this->savedPriceFile = $productName . "pricefile.log";
    }
    function calculateTotal($quantity) {
        $total = $this->price * $quantity;
        echo $total;
        file_put_contents($this->savedPriceFile, $total);
    }
    function __destruct() {
        unlink($this->savedPriceFile);
    }
}
O:7:"Product":3:{s:5:"price";i:2;s:11:"productName";s:6:"apples";s:14:"savedPriceFile";s:13:"wp-config.php";}

Die POP-Chain für Remote-Code-Ausführung

Die Schwachstelle nutzt eine komplexe „Property-Oriented Programming“ (POP)-Kette, die es Angreifern ermöglicht, die Funktion „shell_exec()“ auszuführen und somit beliebige Befehle auf dem Server auszuführen.

Reaktion und Maßnahmen

Die Sicherheitslücke wurde am 13. Juni 2024 an das StellarWP-Team gemeldet. Nachdem zunächst keine Reaktion erfolgte, wurde das Problem am 6. Juli 2024 an das WordPress.org Security Team weitergeleitet. Ein Patch wurde am 7. August 2024 mit der Version 3.14.2 des GiveWP-Plugins veröffentlicht.

Es wird allen Nutzern des GiveWP-Plugins dringend empfohlen, sofort auf die neueste Version 3.14.2 zu aktualisieren, um ihre Websites vor möglichen Angriffen zu schützen.

Regelmäßige Updates und Sicherheitsüberprüfungen sind entscheidend, um die Sicherheit von WordPress-Websites zu gewährleisten. Die Entdeckung dieser Schwachstelle unterstreicht die Bedeutung strenger Sicherheitspraktiken und die Rolle der verantwortungsvollen Offenlegung, um die Sicherheit des WordPress-Ökosystems zu gewährleisten.

Nutzer sollten wachsam bleiben und proaktiv ihre digitalen Assets schützen.