Contenidos
Vulnerabilidad descubierta en WPCode: inserte el complemento de WordPress para encabezados y pies de página por segunda vez en 2023
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:
“Cross-Site Request Forgery (CSRF) is an attack that forces an end user to execute unwanted actions on a web application in which they’re currently authenticated.
With a little help of social engineering (such as sending a link via email or chat), an attacker may trick the users of a web application into executing actions of the attacker’s choosing.
If the victim is a normal user, a successful CSRF attack can force the user to perform state changing requests like transferring funds, changing their email address, and so forth.
If the victim is an administrative account, CSRF can compromise the entire web application.”
“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 las acciones que el atacante elija.
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: Common Weakness Enumeration (CWE
“The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request.
…When a web server is designed to receive a request from a client without any mechanism for verifying that it was intentionally sent, then it might be possible for an attacker to trick a client into making an unintentional request to the web server which will be treated as an authentic request.
This can be done via a URL, image load, XMLHttpRequest, etc. and can result in exposure of data or unintended code execution.”
“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
Esto se puede hacer a través de una URL, carga de imágenes, XMLHttpRequest, etc. y puede dar como resultado 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:
“The WPCode WordPress plugin before 2.0.9 has a flawed CSRF when deleting log, and does not ensure that the file to be deleted is inside the expected folder.
This could allow attackers to make users with the wpcode_activate_snippets capability delete arbitrary log files on the server, including outside of the blog folders.”
“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: proof of concept
"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"
"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.
Se descubrió otra vulnerabilidad en febrero de 2023, que afectaba a las versiones 2.0.6 o menos, que la empresa de seguridad Wordfence WordPress describió como una «Autorización faltante 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: warned
“The WPCode WordPress plugin before 2.0.7 does not have adequate privilege checks in place for several AJAX actions, only checking the nonce.
This may lead to allowing any authenticated user who can edit posts to call the endpoints related to WPCode Library authentication (such as update and delete the auth key).”
“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: changelog notation for version update 2.0.9
“Fix: Security hardening for deleting logs.”
«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 siguiente.
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 CVE-2023-1624 Detail
Leer el articulo original en Search Engine Journal.