Im WordPress-Plugin OptinMonster, das über eine Million aktive Installationen hat und zur Anzeige von Pop-up-Benachrichtigungen und Angeboten verwendet wird, wurde eine Sicherheitsanfälligkeit (CVE-2021-39341) entdeckt, die es ermöglicht, eigenen JavaScript-Code auf einer Website, die das genannte Plugin verwendet, zu platzieren. Die Sicherheitsanfälligkeit wurde in der Version 2.6.5 behoben. Um den Zugriff über kompromittierte Schlüssel nach der Installation des Updates zu blockieren, haben die Entwickler von OptinMonster alle zuvor erstellten API-Zugangs-Token annulliert und Einschränkungen für die Nutzung von Schlüsseln für WordPress-Websites zur Änderung von OptinMonster-Kampagnen eingeführt.
Das Problem wurde durch das Vorhandensein des REST-API /wp-json/omapp/v1/support verursacht, auf das ohne Authentifizierung zugegriffen werden konnte – die Anfrage wurde ohne zusätzliche Prüfungen ausgeführt, wenn im Referer-Header die Zeile „https://wp.app.optinmonster.test“ vorhanden war und der Typ der HTTP-Anfrage auf „OPTIONS“ festgelegt wurde (was durch den HTTP-Header „X-HTTP-Method-Override“ überschrieben wird). Unter den Daten, die bei der Abfrage des betreffenden REST-API zurückgegeben wurden, war ein Zugangs-Token, das es erlaubte, Anfragen an beliebige REST-API-Handler zu senden.
Mit dem erhaltenen Schlüssel konnte der Angreifer Änderungen an beliebigen Pop-up-Blockern vornehmen, die mithilfe von OptinMonster angezeigt werden, auch die Ausführung seines eigenen JavaScript-Codes organisieren. Durch die Möglichkeit, seinen JavaScript-Code im Kontext der Website auszuführen, konnte der Angreifer die Nutzer auf seine eigene Website umleiten oder die Ersetzung eines privilegierten Kontos im Web-Interface bei der Ausführung des eingespeisten JavaScript-Codes durch den Administrator der Website organisieren. Mit Zugang zum Web-Interface konnte der Angreifer die Ausführung seines PHP-Codes erreichen Server.
Quelle: opennet.ru
