Complemento de WordPress anti-spam podría exponer los datos del usuario del sitio web

Protección contra correo no deseado, AntiSpam, FireWall by CleanTalk está instalado en más de 100.000 sitios y podría ofrecer información confidencial a los atacantes que ni siquiera han iniciado sesión.

Una vulnerabilidad de inyección de SQL descubierta en un complemento de WordPress llamado “Protección contra correo no deseado, AntiSpam, FireWall de CleanTalk” podría exponer los correos electrónicos de los usuarios, contraseñas, datos de tarjetas de crédito y otra información confidencial a un atacante no autenticado.

Según Wordfence, el problema (CVE-2021-24295, que tiene una calificación de vulnerabilidad CVSS de alta gravedad de 7.5 sobre 10) surge gracias a cómo realiza ese filtrado. Mantiene una lista de bloqueo y rastrea el comportamiento de diferentes direcciones IP, incluida la cadena de usuario-agente que los navegadores envían para identificarse.

«Desafortunadamente, la función update_log en lib / Cleantalk / ApbctWP / Firewall / SFW.php, que se usó para insertar registros de estas solicitudes en la base de datos, no pudo usar una declaración SQL preparada», según la firma, que publicó un análisis el martes.

La inyección de SQL es una vulnerabilidad de seguridad web que permite a los atacantes interferir con las consultas que una aplicación realiza a su base de datos, de modo que intercepten o infieran las respuestas que las bases de datos devuelven cuando se consultan. Las declaraciones preparadas son una de las formas de prevenir esto; aíslan cada parámetro de consulta para que un adversario no pueda ver todo el alcance de los datos que se devuelven.

Los investigadores pudieron explotar con éxito la vulnerabilidad en CleanTalk a través de la técnica de inyección SQL ciega basada en el tiempo, dijeron. Este es un enfoque que implica enviar solicitudes a la base de datos que «adivinan» el contenido de una tabla de la base de datos e instruyen a la base de datos para retrasar la respuesta o «dormir» si la suposición es correcta.

«Por ejemplo, una solicitud puede preguntar a la base de datos si la primera letra de la dirección de correo electrónico del usuario administrador comienza con la letra» c «, e indicarle que demore la respuesta cinco segundos si esto es cierto, y luego intente adivinar las siguientes letras. en secuencia ”, según Wordfence. «Hay una serie de otras técnicas de inyección de SQL que pueden solucionar muchas formas de desinfección de entrada tradicional en función de la construcción exacta de la consulta vulnerable».

Wordfence describió varias características en el código del complemento que hacen que el problema sea más difícil de explotar. Por ejemplo, la consulta SQL vulnerable es una consulta de «inserción».

«Dado que los datos no se estaban insertando en una tabla confidencial, un atacante no podía utilizar la consulta de inserción para explotar el sitio cambiando los valores en la base de datos, y esto también dificultaba la recuperación de datos confidenciales de la base de datos», según a Wordfence.

Además, la declaración SQL utilizó la función «sanitize_text_field» en un intento de evitar la inyección de SQL, y el agente de usuario se incluyó en la consulta entre comillas simples.

«A pesar de estos obstáculos, pudimos crear una prueba de concepto capaz de extraer datos de cualquier lugar de la base de datos mediante el envío de solicitudes que contienen comandos SQL en el encabezado de solicitud de usuario-agente», dijeron los investigadores.

Para estar protegidos, los administradores web deben actualizar la versión parcheada del complemento, 5.153.4.