OptinMonster: La vía rápida para el código arbitrario en WordPress

OptinMonster: Connection To WP & Live Campaign Preview - Ahoi, Dev!

Ha sido expuesta una vulnerabilidad para OptinMonster, para todas las versiones desde la 2.6.4 o inferiores.

El Plugin de WordPress ha sido afectado por una vulnerabilidad de alta severidad que permite el ingreso no autorizado a la API de un website con consecuencias dantescas como la divulgación de información sensible de millones de sitios en WordPress.

La vulnerabilidad, con el identificador CVE-2021-39341, fue descubierta el 28 de septiembre del 2021.

OptinMonster es uno de los plugins más populares de WordPress, entre sus funciones está convertir a los visitantes de un sitio web de visitantes a suscriptores o incluso clientes. La amenaza que conlleva esta vulnerabilidad nace de los API que se encuentran en los endpoints que permite integraciones sin fallas.

Sin embargo, la implementación de estos endpoint jamás ha sido muy segura y se presenta un caso crítco que es el de ‘/wp-json/omapp/v1/support’ endpoint.

Este endpoint puede revelar datos muy sensibles como el full path que se encuentra en un servidor, credenciales de APIs que son usadas para requerimientos en el sitio y más.

El atacante no tiene la necesidad de autenticarse en el sitio que desea atacar para acceder al API endpoint, con una solicitud HTTP podría realizar un bypass a la seguridad del sitio, para lanzar su ataque, debido a una de las funciones logged_in_or_has_api_key usadas llamada permissions_callback, si un requerimiento de un API endpoint tiene la cabecera Referer ajustada a https://wp.app.optinmonster.test y si la solicitud HTTP se colaca en OPTIONS la función retornará un «true», y de esta forma la seguridad sería vulnerable. Quién realice el ataque, siempre que conozca estos requerimientos y en la cabecera HTTP coloque X-HTTP-Method-Override para el método requerido en el REST-API endpoint (como podrían ser: GET o POST), para realizar con éxito la solicitud.

A request to the vulnerable API endpoint
Ejemplo de solicitud HTTP para un API vulnerable

Con acceso a esta API endpoint, una vez que haya sido infectada por un código malicioso JavaScript, puede realizar cambios en las campañas que se están ejecutando en el sitio atacado.

No es el único Endpoint afectado

Pese a que ‘/wp-json/omapp/v1/support’ endpoint es el API objetivo de este ataque, todos las demás REST-API que se encuentran en este plugin son vulnerables. Los atacantes pueden cambiar configuraciones, ver datos de las campañas, activas y desactivar el debug mode, y mucho más.

¿Cómo solucionarlo?

En caso de que se encuentre usando este plugin debe actualizar de inmediato a la versión más reciente es la 2.6.6.

Recomendaciones

Las vulnerabilidades aparecen sin previo aviso, por eso sugerimos:

  • Actualizar los plugins que se utilizan en el sitio web.
  • Revisar los datos de sus campañas activas.
  • Tomar acción en caso de notar actividad maliciosa en el sitio, o de presentarse sucesos no usuales.
  • Tener un respaldo del sitio web.

Para más información visite