Se descubrió que el complemento de WordPress WPCode – Insert Headers and Footers + Custom Code Snippets, con más de un millón de instalaciones, tiene una vulnerabilidad que podría permitir al atacante eliminar archivos en el servidor.
Se publicó una advertencia sobre la vulnerabilidad en la base de datos nacional de vulnerabilidades (NVD) del gobierno de los Estados Unidos.
Complemento Insertar encabezados y pies de página
El complemento WPCode (anteriormente conocido como Insertar encabezados y pies de página por WPBeginner), es un complemento popular que permite a los editores de WordPress agregar fragmentos de código al área del encabezado y pie de página.
Esto es útil para los editores que necesitan agregar un código de validación del sitio de Google Search Console, un código CSS, datos estructurados, incluso un código de AdSense, prácticamente cualquier cosa que pertenezca al encabezado o al pie de página de un sitio web.
Vulnerabilidad de falsificación de solicitud entre sitios (CSRF)
El complemento WPCode: insertar encabezados y pies de página antes de la versión 2.0.9 contiene lo que se ha identificado como una vulnerabilidad de falsificación de solicitud entre sitios (CSRF).
Un ataque CSRF se basa en engañar a un usuario final que está registrado en el sitio de WordPress para que haga clic en un enlace que realiza una acción no deseada.
El atacante básicamente aprovecha las credenciales del usuario registrado para realizar acciones en el sitio en el que está registrado el usuario.
Cuando un usuario de WordPress que ha iniciado sesión hace clic en un enlace que contiene una solicitud maliciosa, el sitio está obligado a realizar la solicitud porque está utilizando un navegador con cookies que identifica correctamente al usuario que ha iniciado sesión.
Es la acción maliciosa que el usuario registrado está ejecutando sin saberlo con lo que cuenta el atacante.
El Open Worldwide Application Security Project (OWASP) sin fines de lucro describe una vulnerabilidad CSRF:
“La falsificación de solicitud entre sitios (CSRF) es un ataque que obliga a un usuario final a ejecutar acciones no deseadas en una aplicación web en la que está autenticado actualmente.
Con un poco de ayuda de ingeniería social (como enviar un enlace por correo electrónico o chat), un atacante puede engañar a los usuarios de una aplicación web para que ejecuten acciones de su elección.
Si la víctima es un usuario normal, un ataque CSRF exitoso puede obligar al usuario a realizar solicitudes de cambio de estado, como transferir fondos, cambiar su dirección de correo electrónico, etc.
Si la víctima es una cuenta administrativa, CSRF puede comprometer toda la aplicación web”.
El sitio web Common Weakness Enumeration (CWE), patrocinado por el Departamento de Seguridad Nacional de los Estados Unidos, ofrece una definición de este tipo de CSRF:
“La aplicación web no verifica, o no puede, de manera suficiente si el usuario que envió la solicitud proporcionó intencionalmente una solicitud coherente, válida y bien formada.
…Cuando un servidor web está diseñado para recibir una solicitud de un cliente sin ningún mecanismo para verificar que se envió intencionalmente, es posible que un atacante engañe a un cliente para que realice una solicitud no intencional al servidor web que será tratada como una petición auténtica.
Esto se puede hacer a través de una URL, carga de imágenes, XMLHttpRequest, etc. y puede resultar en la exposición de datos o la ejecución no deseada de código”.
En este caso particular, las acciones no deseadas se limitan a eliminar archivos de registro.
La base de datos nacional de vulnerabilidades publicó detalles de la vulnerabilidad:
“El complemento WPCode WordPress anterior a 2.0.9 tiene un CSRF defectuoso al eliminar el registro y no garantiza que el archivo que se eliminará esté dentro de la carpeta esperada.
Esto podría permitir a los atacantes hacer que los usuarios con la capacidad wpcode_activate_snippets eliminen archivos de registro arbitrarios en el servidor, incluso fuera de las carpetas del blog”.
El sitio web WPScan (propiedad de Automattic) publicó una prueba de concepto de la vulnerabilidad.
Una prueba de concepto, en este contexto, es un código que verifica y demuestra que una vulnerabilidad puede funcionar.
Esta es la prueba de concepto:
"Make a logged in user with the wpcode_activate_snippets capability open the URL below https://example.com/wp-admin/admin.php?page=wpcode-tools&view=logs&wpcode_action=delete_log&log=../../delete-me.log This will make them delete the ~/wp-content/delete-me.log"
Segunda Vulnerabilidad para 2023
Esta es la segunda vulnerabilidad descubierta en 2023 para el complemento WPCode Insert Headers and Footers.
En febrero de 2023 se descubrió otra vulnerabilidad que afectaba a las versiones 2.0.6 o anteriores, que la empresa de seguridad Wordfence WordPress describió como una “Falta la autorización para la divulgación/actualización de claves confidenciales”.
Según NVD, el informe de vulnerabilidad, la vulnerabilidad también afectó a las versiones hasta la 2.0.7.
El NVD advirtió sobre la vulnerabilidad anterior:
“El complemento de WordPress WPCode anterior a 2.0.7 no tiene controles de privilegios adecuados para varias acciones de AJAX, solo verifica el nonce.
Esto puede llevar a permitir que cualquier usuario autenticado que pueda editar publicaciones llame a los puntos finales relacionados con la autenticación de la biblioteca WPCode (como actualizar y eliminar la clave de autenticación)”.
WPCode emitió un parche de seguridad
El registro de cambios para el plugin de WordPress WPCode – Insertar encabezados y pies de página señala de manera responsable que corrigieron un problema de seguridad.
Una notación de registro de cambios para la actualización de la versión 2.0.9 dice:
“Corrección: refuerzo de la seguridad para eliminar registros”.
La notación del registro de cambios es importante porque alerta a los usuarios del complemento sobre el contenido de la actualización y les permite tomar una decisión informada sobre si continuar con la actualización o esperar hasta la próxima.
WPCode actuó de manera responsable respondiendo al descubrimiento de la vulnerabilidad de manera oportuna y también anotando la solución de seguridad en el registro de cambios.
Acciones recomendadas
Se recomienda que los usuarios del complemento WPCode – Insertar encabezados y pies de página actualicen su complemento al menos a la versión 2.0.9.
La versión más actualizada del complemento es 2.0.10.
Lea sobre la vulnerabilidad en el sitio web de NVD:
CVE-2023-1624 Detalle