Inyección SQL no autenticada en el plugin Multiple Shipping Address para WooCommerce (pre-2.0)

Se ha detectado una vulnerabilidad crítica en el plugin Multiple Shipping Address for WooCommerce, una herramienta utilizada por tiendas online para gestionar envíos a múltiples destinos. Este fallo podría permitir a atacantes manipular la base de datos del sitio sin necesidad de autenticación, exponiendo o alterando información sensible.

Productomultiple-shipping-address-woocommerce
Fecha2025-05-30 13:17:43
Información
  • Tendencia
  • Corrección disponible

Resumen técnico

En las versiones del plugin anteriores a la 2.0, varios parámetros de los endpoints AJAX no se sanitizaban ni se escapaban correctamente antes de ser incorporados en las consultas SQL. En particular, el endpoint action=ocwma_choice_address es vulnerable y accesible incluso para usuarios no autenticados. Esto abre la puerta a ataques de tipo SQL Injection no autenticado (SQLi).

Un atacante puede construir una solicitud POST maliciosa hacia /wp-admin/admin-ajax.php utilizando un payload como:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: [target]
Content-Type: application/x-www-form-urlencoded

action=ocwma_choice_address&sid=3+AND+(SELECT+1946+FROM+(SELECT(SLEEP(7)))zsme)

Esto provoca una pausa de 7 segundos en el backend, demostrando la presencia de una SQL injection ciega basada en tiempo. La vulnerabilidad está clasificada como CWE-89 (Neutralización incorrecta de elementos especiales utilizados en un comando SQL) y recibe una puntuación de 8.6 (Alta) según la escala CVSS 3.1, debido a la ausencia de autenticación, la baja complejidad y el alto impacto en la confidencialidad, integridad y disponibilidad.

Recomendaciones

  • Actualizar inmediatamente: Realice la actualización del plugin Multiple Shipping Address Woocommerce a la versión 2.0 o superior, en la cual se ha solucionado el problema.

  • Limitar el acceso: Deshabilite temporalmente las acciones AJAX para usuarios no autenticados, si es posible.

  • Monitoreo y auditoría: Revise los registros (logs) en busca de actividad anómala en solicitudes AJAX, particularmente hacia admin-ajax.php.

  • Web Application Firewall (WAF): Active o configure un WAF para detectar y bloquear intentos de SQL injection.

[Callforaction-THREAT-Footer]