Nel plugin WordPress OptinMonster, con oltre un milione di installazioni attive e utilizzato per organizzare la visualizzazione di avvisi e offerte pop-up, è stata identificata una vulnerabilità (CVE-2021-39341) che permette di inserire il proprio codice JavaScript su un sito che utilizza il plugin menzionato. La vulnerabilità è stata corretta nella versione 2.6.5. Per bloccare l'accesso tramite chiavi compromesse dopo l'installazione dell'aggiornamento, gli sviluppatori di OptinMonster hanno annullato tutte le chiavi di accesso API precedentemente create e hanno aggiunto restrizioni sull'uso delle chiavi dei siti WordPress per modificare le campagne di OptinMonster.
Il problema è causato dalla presenza del REST-API /wp-json/omapp/v1/support, accessibile senza autenticazione: la richiesta veniva eseguita senza ulteriori controlli in presenza dell'intestazione Referer con la stringa "https://wp.app.optinmonster.test" e impostando il tipo di richiesta HTTP su "OPTIONS" (sovrascrivibile tramite l'intestazione HTTP "X-HTTP-Method-Override"). Tra i dati restituiti nella chiamata al REST-API in questione era presente una chiave di accesso che consentiva di inviare richieste a qualsiasi gestore del REST-API.
Con la chiave ottenuta, l'attaccante poteva apportare modifiche a qualsiasi popup visualizzato tramite OptinMonster, incluso l'esecuzione del proprio codice JavaScript. Ottenendo la possibilità di eseguire il proprio codice JavaScript nel contesto del sito, l'attaccante poteva reindirizzare gli utenti al proprio sito o sostituire un account privilegiato nell'interfaccia web durante l'esecuzione del codice JavaScript fornito dall'amministratore del sito. Avendo accesso all'interfaccia web, l'attaccante poteva riuscire a eseguire il proprio codice PHP su server.
Fonte: opennet.ru
