Im WordPress-Plugin OptinMonster, das über eine Million aktive Installationen verfügt und zur Anzeige von Pop-up-Benachrichtigungen und Angeboten verwendet wird, wurde eine Sicherheitsanfälligkeit (CVE-2021-39341) entdeckt. Diese ermöglicht das Einfügen eines eigenen JavaScript-Codes in eine Website, die das genannte Plugin verwendet. Die Sicherheitsanfälligkeit wurde mit der Version 2.6.5 behoben. Um den Zugriff über fälschlicherweise erstellte API-Schlüssel nach der Installation des Updates zu blockieren, haben die Entwickler von OptinMonster alle zuvor erstellten API-Zugriffsschlüssel annulliert und neue Einschränkungen für die Verwendung von WordPress-Seite-Schlüsseln zum Ändern von OptinMonster-Kampagnen eingeführt.
Das Problem wurde durch das Vorhandensein des REST-APIs /wp-json/omapp/v1/support verursacht, auf das ohne Authentifizierung zugegriffen werden konnte — die Anfrage wurde ohne zusätzliche Überprüfungen ausgeführt, wenn im Referer-Header die Zeile „https://wp.app.optinmonster.test“ und der HTTP-Anfragetyp auf „OPTIONS“ eingestellt war (dies kann über den HTTP-Header „X-HTTP-Method-Override“ geändert werden). Unter den Daten, die beim Zugriff auf das betreffende REST-API zurückgegeben wurden, befand sich ein Zugriffsschlüssel, der das Senden von Anfragen an beliebige REST-API-Handler ermöglichte.
Mit dem erhaltenen Schlüssel konnte der Angreifer Änderungen an allen Pop-ups vornehmen, die über OptinMonster angezeigt werden, einschließlich der Ausführung seines eigenen JavaScript-Codes. Mit der Möglichkeit, seinen JavaScript-Code im Kontext der Website auszuführen, konnte der Angreifer Benutzer auf seine eigene Website umleiten oder eine privilegierte Anmeldung im Webinterface initiieren, während der eingeschleuste JavaScript-Code vom Website-Administrator ausgeführt wurde. Mit Zugriff auf das Webinterface könnte der Angreifer die Ausführung seines PHP-Codes auf Server.
Quelle: opennet.ru
