Vulnerabilidades de alta prioridad corregidas en el complemento principal de Uncode

administración

Introducción

El 7 de mayo de 2024, WP-Firewall, una organización líder en asesoría de seguridad, publicó un informe detallado sobre vulnerabilidades críticas descubiertas en el complemento Uncode Core. Si eres usuario de Uncode, es fundamental que actualices tu complemento principal al menos a la versión 2.8.9 para proteger tu sitio de WordPress de posibles ataques. En esta publicación, analizaremos en profundidad los detalles de estas vulnerabilidades, sus implicaciones y los pasos que se han tomado para mitigarlas.

Acerca del complemento Uncode Core

El complemento Uncode Core, desarrollado por Undsgn, es un componente esencial del tema Uncode, un tema premium muy popular para sitios WooCommerce, con más de 110 000 ventas en ThemeForest. El tema Uncode es famoso por su diseño perfecto en píxeles, lo que lo hace ideal para varios sitios web, incluidos portafolios, agencias, autónomos, blogs y tiendas en línea.

Las vulnerabilidades de seguridad

Los investigadores de seguridad de WP-Firewall identificaron dos vulnerabilidades importantes en el complemento Uncode Core:

1. Eliminación arbitraria autenticada de archivos y directorios

Descripción:Esta vulnerabilidad permite que cualquier usuario autenticado con al menos un rol de suscriptor elimine directorios arbitrarios en el servidor. El problema radica en la función `delete_download`, que carece de los permisos adecuados y de las comprobaciones de nonce. Esta función está asociada a la acción `wp_ajax_uncodefont_delete_download`, lo que permite que los usuarios autenticados la aprovechen.

Detalles técnicos:

función eliminar_descargar() {
si (se establece ($_REQUEST['familia_de_fuentes'])) {
$font_family = $_REQUEST['familia_de_fuentes'];
$font_dir = trailingslashit($this->directorio_de_fuentes).$font_family;
$fontkit_zip = $font_dir.'.zip';

si (@archivo_existe($fontkit_zip)) {
si (!@unlink($fontkit_zip)) {
eco json_encode(matriz(
'error' => sprintf( esc_html__( 'No se pudo eliminar el zip del kit @fontface %1$s.', 'uncode-core' ), $fontkit_zip )
));
morir();
}
}

// No se puede eliminar el directorio porque unzip_file, que lo creó, utiliza WP_Filesystem. Por lo tanto, utilizamos WP_Filesystem para eliminarlo.
$this->setup_wp_filesystem();

sistema de archivos global $wp;
si (isset($wp_filesystem)) {
$delete_dir = $wp_filesystem->delete($font_dir, verdadero);
si (!$eliminar_dir) {
echo json_encode(matriz('error' => $delete_dir['error']));
morir();
}
}

echo json_encode(array('success' => "Descarga eliminada"));
}
morir();
}
incluye/font-system/font-system.php, función delete_download()

La función construye la variable `$font_dir` a partir de la entrada del usuario (`$_REQUEST['font_family']`) sin desinfección, lo que permite el recorrido de directorios y la eliminación arbitraria.

2. Escalada de privilegios autenticada

Descripción:Esta vulnerabilidad permite que cualquier usuario autenticado con un rol mínimo de suscriptor escale sus privilegios a cualquier rol en el sitio de WordPress. Esto se debe a una actualización insegura de WP Option en la función `save_option`, que carece de las comprobaciones de permisos adecuadas.

Detalles técnicos:

función pública save_option() {
si ( se establece ( $_POST['nonce'] ) && wp_verify_nonce ( $_POST['nonce'], 'uncode-core-settings-nonce' ) ) {
si ( se establece( $_POST['valor'] ) && $_POST['valor'] && se establece( $_POST['id_opción'] ) && $_POST['id_opción'] ) {
$autoload = isset( $_POST['carga automática'] ) && $_POST['carga automática'] === 'verdadero' ? verdadero : falso;
actualizar_opcion( $_POST['id_opcion'], $_POST['valor'], $autoload );
---------- CORTE AQUÍ ----------
incluye/configuraciones-core/clase-configuraciones-core.php, función save_option()

El nonce utilizado en esta función puede ser recuperado por cualquier usuario autenticado con acceso al área wp-admin, lo que permite actualizaciones no autorizadas de opciones y escalada de privilegios.

El parche

Para solucionar estas vulnerabilidades, los desarrolladores del complemento Uncode Core lanzaron la versión 2.8.9, que incluye las siguientes correcciones:

Eliminación arbitraria autenticada de archivos y directorios:Se implementaron comprobaciones de permisos y nonce en la función `delete_download`.

Autenticación de privilegios:Se aplicaron controles de permiso y nonce en la función `save_option` y se agregó una verificación de lista blanca para claves de opción.

Conclusión

Para garantizar la seguridad de su sitio de WordPress, debe mantenerse actualizado con los últimos parches y avisos de seguridad. Las vulnerabilidades del complemento Uncode Core subrayan la importancia de implementar controles de permisos y nonce adecuados para cualquier acción sensible. Siempre limpie las entradas del usuario y limite el alcance de lo que se puede actualizar o eliminar a través de las acciones del usuario.

Para obtener información más detallada, puede leer el aviso de seguridad completo en el sitio web de WP-Firewall. aquí.

Mantente seguro

WP-Firewall ofrece varias soluciones para la seguridad de WordPress, incluidas auditorías de complementos, monitoreo y respuesta a vulnerabilidades y servicios de seguridad administrados de WordPress. Si eres desarrollador de complementos o investigador de seguridad, considera unirte a WP-Firewall.


wordpress security update banner

Reciba WP Security Weekly gratis 👋
Regístrate ahora
!!

Regístrese para recibir la actualización de seguridad de WordPress en su bandeja de entrada todas las semanas.

¡No hacemos spam! Lea nuestro política de privacidad para más información.