I WordPress-udvidelsen OptinMonster, som har over en million aktive installationer og anvendes til at generere pop-up-beskeder og tilbud, er der opdaget en sårbarhed (CVE-2021-39341), der muliggør indsættelse af egen JavaScript-kode på en hjemmeside, der bruger denne udvidelse. Sårbarheden er blevet rettet i version 2.6.5. For at blokere adgangen via kompromitterede nøgler efter opdateringen har udviklerne af OptinMonster annulleret alle tidligere oprettede API-nøgler og indført begrænsninger for brugen af nøgler fra WordPress-websteder til at ændre OptinMonster-kampagner.
Problemet skyldes tilstedeværelsen af REST-API'en /wp-json/omapp/v1/support, som kunne tilgås uden autentifikation — anmodningen blev udført uden yderligere kontroller, når der i headeren var strengen "https://wp.app.optinmonster.test" og når HTTP-anmodningstypen blev indstillet til "OPTIONS" (omskrives ved hjælp af HTTP-headeren "X-HTTP-Method-Override"). Blandt de data, der blev returneret ved kalden til den pågældende REST-API, var der en adgangsnøgle, der gjorde det muligt at sende anmodninger til enhver REST-API-håndtering.
Ved hjælp af den opnåede nøgle kunne angriberen træffe ændringer i enhver pop-up, der vises ved hjælp af OptinMonster, herunder organisere udførelsen af sin egen JavaScript-kode. Når angriberen fik mulighed for at udføre sin egen JavaScript-kode i konteksten af webstedet, kunne han omdirigere brugerne til sin egen hjemmeside eller arrangere en substitution af en privilegeret konto i webinterfacet, når den indskudte JavaScript-kode blev udført af webstedets administrator. Med adgang til webinterfacet kunne angriberen få udført sin egen PHP-kode på serveren.
Kilde: opennet.ru
