Si recibió un correo electrónico mío que le dirige a esta página, es porque su sitio web parece estar ejecutando una versión de SMS Alert (el plugin de WordPress listado como “SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery”, de Cozy Vision Technologies, que se encuentra en sus archivos en /wp-content/plugins/sms-alert/) que cae dentro del rango afectado por un problema de seguridad conocido. Esta página explica cuál es el problema, cómo determinar si afecta siquiera a su sitio, y cómo actualizar. Se trata de un plugin de WordPress en su totalidad.

Antes que nada, el hecho más importante sobre este aviso: una versión dentro del rango afectado no significa por sí misma que su sitio esté expuesto. El problema descrito a continuación solo entra en juego cuando dos condiciones son ciertas a la vez, y ninguna de ellas es visible desde fuera de su sitio:

  1. Su sitio tiene la verificación OTP activada para el restablecimiento de contraseñas en la configuración de SMS Alert, y
  2. la cuenta objetivo tiene un número de teléfono almacenado.

Si utiliza SMS Alert solo para notificaciones de pedidos, mensajes de carrito abandonado, u OTP en el pago o en el registro, y no para verificar el restablecimiento de contraseñas, entonces es muy probable que este problema no alcance a su sitio, incluso en una versión afectada. Puedo leer la versión de su plugin desde un archivo público, pero no puedo ver su configuración, por lo que este aviso es una advertencia preventiva, no un hallazgo confirmado sobre su sitio.

El problema es CVE-2026-11387, una toma de control de cuenta sin autenticación a través del flujo de restablecimiento de contraseña del plugin (CWE-640, recuperación de contraseña débil). Afecta a las versiones 3.0.0 hasta 3.9.5 y está corregido en 3.9.6. Si está ejecutando una versión afectada, actualice SMS Alert a la versión 3.9.6 o posterior. Las versiones 3.9.7 y 3.9.8 se lanzaron después y corrigen problemas distintos; ambas son seguras en lo que respecta a este problema, y 3.9.8 es la versión actual. Tiene una puntuación CVSS de 9.8 y el código de prueba de concepto es público, razón por la cual escribo esto aunque la pregunta de configuración anterior pueda muy bien resolverlo a su favor.

Una palabra sobre la urgencia, ya que este es un aviso condicional. Si no utiliza SMS Alert para la verificación de restablecimiento de contraseñas, la actualización es un mantenimiento ordinario del plugin. Si lo utiliza, por favor trate la actualización como una prioridad: en esa configuración la vulnerabilidad podría permitir que un visitante remoto sin ninguna cuenta establezca una nueva contraseña para cualquier usuario que tenga un número de teléfono registrado, incluyendo un administrador, lo que entregaría el control del sitio.

Esta es una vulnerabilidad del plugin, no del núcleo de WordPress ni de WooCommerce. Un WordPress completamente actualizado no le protege si el plugin SMS Alert en sí está en una versión afectada.

¿Es legítimo este mensaje?

Sí. Este es un aviso de divulgación responsable y de buena fe de un investigador de seguridad independiente. Yo no le pido dinero, contraseñas ni acceso a su sitio, y no he intentado infiltrarme en él, enviar nada a través de él, ni explotar nada.

Lo único que hice fue examinar archivos públicamente visibles que su sitio web sirve a todos los visitantes (del mismo modo que su página de inicio es pública) y anotar el número de versión que el plugin publica en su archivo público readme.txt. Específicamente no toqué el flujo de restablecimiento de contraseña, y nada de esta comprobación toca sus datos, su área de administración ni ninguna parte privada de su sitio (más detalle en Qué hice y qué no hice más abajo).

Si desea verificar quién soy, consulte los datos de contacto al final de esta página y la página Acerca de.

Por qué importa

SMS Alert envía notificaciones por SMS y WhatsApp para tiendas WooCommerce, y también puede colocar un código de un solo uso delante de ciertas acciones del usuario. Uno de los flujos que puede proteger de esa manera es el restablecimiento de «¿olvidó su contraseña?»: el visitante solicita un restablecimiento, el plugin envía por SMS un código de un solo uso al número de teléfono de la cuenta, y se supone que la nueva contraseña solo se establece después de que ese código se haya introducido correctamente.

En las versiones afectadas, el paso que establece la nueva contraseña no comprobaba que el código de un solo uso se hubiera completado realmente. El restablecimiento podía por tanto llevarse a término sin que el código llegara a introducirse nunca, por parte de alguien que no ha iniciado sesión y no tiene cuenta propia. La versión 3.9.6 añade la comprobación que faltaba, de modo que el paso de establecer la contraseña ahora se niega a ejecutarse a menos que el desafío del código se haya superado primero.

Dos cosas determinan cuánto importa esto para un sitio dado. Primero, el punto de entrada es esa configuración específica: el plugin solo ejecuta su propio flujo de restablecimiento cuando un administrador ha activado la verificación OTP para el restablecimiento de contraseñas, y solo tiene un código que enviar para una cuenta que tiene un número de teléfono almacenado. Un sitio que nunca activó esa función muy probablemente no está expuesto en absoluto, incluso en una versión afectada. Segundo, allí donde la configuración está activada, el impacto es serio y no marginal, porque nada lo limita a cuentas de bajos privilegios: cualquier cuenta con un número de teléfono registrado puede ser objetivo, administradores incluidos.

Si mi correo electrónico citó este problema, significa que la versión que informa su sitio cae dentro del rango afectado. No probé si su sitio en particular es explotable, y no puedo ver cómo está configurada su OTP; lo único que observé es que el sitio informa una versión afectada.

¿Estoy afectado?

Dos preguntas lo deciden, en este orden.

Primero: ¿utiliza SMS Alert para verificar el restablecimiento de contraseñas? Esta es la pregunta decisiva, y solo usted puede responderla. Comprobar su propia configuración es completamente seguro y es precisamente el objetivo de esta página.

  • En la administración de WordPress, abra el menú SMS Alert y vaya a su configuración, luego a la sección que controla la verificación OTP. Esa sección enumera los flujos delante de los cuales puede colocar un código de un solo uso. Compruebe si el restablecimiento de contraseña (a veces mostrado como «contraseña perdida» u «olvidé mi contraseña») está entre los que tiene activados.
  • Si no está activado, es muy probable que este problema no alcance a su sitio, incluso en una versión afectada. Actualizar sigue siendo recomendable, como mantenimiento ordinario.
  • Si está activado, el problema le afecta, y debería actualizar sin demora.

Por favor, no intente reproducir el problema contra su propio sitio o el de nadie más, y no necesita hacerlo para responder la pregunta anterior: leer su configuración le dice todo lo que necesita saber.

Segundo: ¿qué versión está ejecutando? No tiene que tomar mi palabra, pero para este plugin una de las formas obvias de comprobarlo es engañosa, por lo que vale la pena leer esta parte con atención.

Desde el área de administración de WordPress (fuente autorizada):

  1. Inicie sesión en su escritorio de WordPress (normalmente en yourdomain.com/wp-admin).
  2. Vaya a Plugins y luego a Plugins instalados.
  3. Encuentre la entrada listada como “SMS Alert – SMS & OTP for WooCommerce …“ (su carpeta es sms-alert) y anote la versión mostrada debajo de su nombre. Esta es la versión real instalada.

Desde el manifiesto público (no se necesita inicio de sesión): abra yourdomain.com/wp-content/plugins/sms-alert/readme.txt en un navegador. La línea Stable tag: cerca del principio es la versión que informa su instalación, y este es el mismo archivo público que leí.

Una cosa en la que no confiar: el número ?ver= adjunto a los scripts y hojas de estilo de front-end del plugin en el código fuente de su página. SMS Alert marca esos activos a partir de una constante interna que, al menos una vez, se ha retrasado respecto al lanzamiento real: la versión 3.5.0 se publicó con sus activos marcados como 3.4.9. Leer la versión de esa forma puede, por tanto, mostrarle un lanzamiento más antiguo que el que realmente está ejecutando, lo que en el límite convertiría una instalación 3.9.6 ya corregida en una aparente 3.9.5. Es exactamente por eso que no lo utilicé para decidir a quién contactar, y por eso usted debería juzgar su versión a partir de la pantalla de administración o de la línea de readme.txt en su lugar.

Luego aplique esta regla, teniendo en cuenta que las versiones se comparan numéricamente, no alfabéticamente, por lo que 3.9.10 sería más reciente que 3.9.9:

  • 3.0.0 hasta 3.9.5: potencialmente afectado (sujeto a la pregunta de configuración OTP anterior), actualice ahora.
  • 3.9.6 o posterior: ya corregido. Esto incluye 3.9.7 y 3.9.8, que son versiones posteriores que abordan problemas no relacionados; la versión actual es 3.9.8.
  • Anterior a 3.0.0: fuera de lo que estoy dispuesto a afirmar. La versión más antigua que el fabricante sigue publicando es 3.0.0, por lo que no tengo forma de examinar nada por debajo de ella, y prefiero no decir nada antes que acusar a una versión que no puedo comprobar. En la práctica, este caso es hipotético: la instalación más antigua que he visto en cualquier lugar es una versión 3.4.x.

Cómo actualizar

La vía más segura es actualizar a través del propio WordPress, y realizar una copia de seguridad antes:

  1. Realice una copia de seguridad de su sitio (archivos y base de datos) antes de realizar cambios. La mayoría de los proveedores de alojamiento ofrecen copias de seguridad con un solo clic, o puede utilizar un plugin de copia de seguridad de WordPress.
  2. En la administración de WordPress, vaya a Escritorio y luego a Actualizaciones, o a Plugins y luego a Plugins instalados. Si aparece una actualización de SMS Alert, instálela desde aquí.
  3. Si prefiere la línea de comandos, WP-CLI hace lo mismo: wp plugin update sms-alert (el comando utiliza el nombre de la carpeta, sms-alert).
  4. Si no aparece ninguna actualización, puede obtener la última versión directamente desde la página del plugin en el directorio de WordPress.org, SMS Alert, y actualizar mediante Plugins, luego Añadir nuevo plugin, y finalmente Subir plugin.
  5. Después de actualizar, confirme el nuevo número de versión (3.9.6 o posterior) utilizando los pasos anteriores, y compruebe que sus notificaciones de pedidos y cualquier flujo OTP que utilice siguen funcionando con normalidad.

Mientras está allí, vale la pena confirmar que WordPress core, WooCommerce y sus otros plugins están actualizados, ya que el mismo principio se aplica a todos ellos.

Después de actualizar

Actualizar a la versión 3.9.6 o posterior cierra el problema, y para la mayoría de los sitios esa es toda la tarea. Esta página es un aviso preventivo, no un informe de incidente: no tengo visibilidad sobre si ocurrió algo en su sitio, y no lo he revisado.

Vale la pena considerar un seguimiento, y está condicionado a la misma pregunta sobre la configuración. Si su sitio tenía la verificación OTP para el restablecimiento de contraseñas activada mientras ejecutaba una versión afectada, entonces era al menos teóricamente posible que alguien hubiera establecido una nueva contraseña en una cuenta con un número de teléfono registrado. Actualizar cierra la brecha, pero no deshace el acceso que ya se haya tomado, por lo que en ese caso son sensatas dos precauciones rutinarias:

  • Revise sus cuentas de administrador, y cualquier otra cuenta que importe, en busca de entradas que no reconozca o cambios de rol que usted no haya hecho.
  • Revise los cambios de contraseña recientes y los inicios de sesión recientes de las cuentas que tienen un número de teléfono registrado, y restablezca cualquier contraseña que parezca haber cambiado sin que el titular de la cuenta lo solicitara.

Si encuentra algo que le preocupa, tratarlo como cualquier otro acceso no autorizado sospechoso es la respuesta adecuada: rote las contraseñas de administrador, y considere regenerar las claves secretas y sales en wp-config.php, lo que cierra todas las sesiones existentes. Si su sitio nunca tuvo activada la OTP de restablecimiento de contraseña, actualizar por sí solo es suficiente.

Qué hice y qué no hice

Para ser completamente transparente sobre la comprobación detrás de mi correo electrónico: solo leí dos archivos públicos que su sitio ya sirve a todos los visitantes, específicamente el archivo público readme.txt del plugin y su página de inicio. No accedí a su área de administración de WordPress, a su base de datos, ni a ninguna parte privada del sitio. En particular, no toqué el flujo de restablecimiento de contraseña, no envié nada a su sitio, y no probé ni exploté nada.

Tampoco publico deliberadamente los detalles que ayudarían a alguien a actuar sobre este problema: la página anterior describe la vulnerabilidad al nivel que necesita un propietario de sitio, y no más, y no enlazo el código de prueba de concepto público.

Esta es una observación basada en la versión: su sitio informa una versión en el rango afectado. Dado que este problema depende de la configuración, un sitio en ese rango puede no estar expuesto en absoluto (si no utiliza la verificación OTP para el restablecimiento de contraseñas), y también puede estar ya mitigado por otros medios, como un firewall de aplicaciones web. Este aviso no es una afirmación de que su sitio fuera explotable en el momento en que lo comprobé.

No tengo webmaster / estoy atascado

Si usted no es la persona que mantiene el sitio, por favor reenvíe esta página a quien lo haga (su desarrollador web, agencia o proveedor de alojamiento). Reconocerán rápidamente los pasos anteriores.

Si usted está manteniendo el sitio usted mismo y se queda atascado, estoy encantado de ayudarle a orientarse en la dirección correcta sin costo alguno. Póngase en contacto utilizando los datos de contacto que aparecen a continuación.

Contacto

Evan Harris, investigador de seguridad

Me pongo en contacto sobre problemas como este puramente para ayudar a los operadores a asegurar sus sitios. Si prefiere no ser contactado de nuevo, simplemente hágamelo saber y lo respetaré.

Referencias

Avisos oficiales y seguimiento

Fabricante / plugin