Durante una auditoría interna del complemento UpdraftPlus, descubrimos una descarga de reserva arbitraria que podría permitir a los usuarios con bajos privilegios, como suscriptores, descargar los últimos niños de seguridad. Si se explota, la vulnerabilidad podría dar a los atacantes acceso a información privilegiada de la base de datos del sitio afectado (por ejemplo, nombre de usuario y contraseñas codificadas). Informé la vulnerabilidad de los autores del complemento y recientemente lanzé la versión 1.22.3 para resolverlo. También se han impuesto actualizaciones forzadas automáticas debido a la gravedad de este problema. Si su sitio aún no lo ha hecho, se nos recomienda insistentemente actualizar la última versión (1.22.3) y tener una solución de seguridad establecida en su sitio, como Jetpack Security.
Puede encontrar su propio consejero UpdatftPlus aquí. Detalles Nombres del complemento: Updraftplus URI Plugin: https://wordpress.org/plugins/updraftplus/ autor: https://updraftplus.com/ Reserva de arbitraje de vulnerabilidad Versiones afectadas: cada versión entre 1.16.7 y 1.22.3 (versión gratuita) y CVE-IID: CVE-2022-0633 ID WPVDB: D257C28F-3C7E-422B-A5C2-E6181C0C0BF3 CVSV3.1: 8.5 CWSS: 87.6 El complemento usa “no CECE” y markings temporales personalizados para identificar los holyes del libro. Dado que el conocimiento no mencionado y la marca temporal pueden proporcionar acceso a algunas de las funciones del complemento, es crucial asegurarse de que esta información sea accesible solo para aquellos que las necesitan legítimamente.
Desafortunadamente, como demostramos, no fue el caso. Nonce fugas El primer culpable se ubicó en updraftplus_admin :: process_status_in_heartbeat método ./**
* Reciba datos de latidos y responde.
*
* Procesa datos recibidos a través de una solicitud de latido y devuelve una fecha adicional para que vuelvan a la parte delantera.
*
* @Param Array $ Respuesta – Heartbeat Response Fecha para volver al frente.
* @param matriz $ fecha: datos recibidos de la parte delantera (sin usar).
*/
Función pública Process_status_in_heartbeat ($ respuesta, $ date) {
if (! is_array ($ respuesta)
PROBAR {
$ Respuesta [‘updatplus’] = $ this-> get_activejobs_list (updraftplus_manipulation_functions :: wp_unslash ($ date [‘updatplus’]);
} Catch (excepción $ e) {
$ log_message = ‘Php Fatal Exception Error (‘ .get_class ($ e). ‘) Ha ocurrido durante la lista de trabajo de Get Active. Mensaje de error: ‘. $ E-> getMesage ()’. (Código: ‘. $ E-> getCode ().’, Línea ‘. $ E-> getLine ().’ In ‘. $ E-> getFile ().’);
ERROR_LOG ($ log_message);
$ Respuesta [‘updatplus’] = array (
‘Fatal_error’ => verdadero,
‘Fatal_error_message’ => $ log_message
);
// @codingstandsignoreline
} Catch (Error $ e) {
$ log_message = ‘Php Fatal Error (‘ .get_class ($ e). ‘) Ha ocurrido durante la lista de trabajo de Get Active. Mensaje de error: ‘. $ E-> getMesage ()’. (Código: ‘. $ E-> getCode ().’, Línea ‘. $ E-> getLine ().’ In ‘. $ E-> getFile ().’);
ERROR_LOG ($ log_message);
$ Respuesta [‘updatplus’] = array (
‘Fatal_error’ => verdadero,
‘Fatal_error_message’ => $ log_message
);
}
If (updraftplus_options :: user_can_manage () && isset ($ date [‘updatplus’] [‘updraft_credentialtest_nonce’)) {
if (! wp_verify_nonce ($ date [‘updatplus’] [‘updraft_credentialtest_nonce’], ‘updraftplus-creditititstst-)) {$ Responsise [‘ UpdraftPlus ‘] [‘ UPTraft_CredentialTest_Nonce ‘] = WP_Create_nonce (updattatlus-);
}
}
$ respuesta [‘updatplus’] [‘Time_now’] = get_date_from_gmt (gmdate (‘y-m-d h: i: s’), ‘d, f j, y h: i’);
Devolver $ respuesta;
}
No se ha asegurado correctamente que el usuario que envía esta solicitud de corazón es un administrador (por ejemplo, a través de funciones como Current_user_can), que fue un problema, porque lo primero que esta función está intentando es tomar la lista de trabajos de copia de seguridad activos por el método get_activejobs_list.
Por lo tanto, un atacante podría crear una solicitud maliciosa que concierne a esta llamada inversa para obtener acceso a información sobre la última copia de seguridad del sitio hasta ahora, que contendrá, entre otras cosas, una copia de seguridad. Reserve descarga Hay algunas maneras de descargar a los niños de backupplus de repuesto, la mayoría de los cuales se han asegurado adecuadamente.
/**

* Averigua si la solicitud actual es una solicitud de descarga de copia de seguridad y continúa con la descarga si es
*/
Función pública tal vez_download_backup_from_email () {
Global $ Pagenow;
if ((! Defined (‘doing_ajax’) ‘] && isset ($ _ request [‘ Action ‘]) &&’ Updraft_download_backup ‘=== $ _request [‘ Action ‘]) {
$ FindExes = vacía ($ _ Solicitud [‘FindEx’])? Array (0): $ _Request [‘findex’];
$ timestamp = vacía ($ _ Solicitud [‘Timestamp’])? ”: $ _Request [‘TimeStamp’]; $ nonce = vacía ($ _ solicitud [‘nonce’])? ”: $ _Request [‘nonce’];
$ type = vacía ($ _ solicitud [‘type’)? ”: $ _Request [‘type’];
If (vacía ($ timestam) || vacía ($ nonce) ‘, array (‘ back_link ‘=> true));
$ backup_history = updraftplus_backup_history :: get_history ();
If (! Isset ($ backup_history [$ timestamp] [‘nonce’) || $ backup_history [$ timestamp] [‘nonce’! Ya no está disponible “, ‘updraftplus’), ”, array (‘back_link’ =>> Verdadero);
$ this-> do_upraft_download_backup ($ findexes, $ type, $ timestamp, 2, false, ”);
salida; // No necesitamos nada más que una salida
}
}
}
Desafortunadamente, el método UPDraftPlus_admin :: Tal vez_download_backup_from_email, que está conectado a admin_init, no validó directamente los roles de los usuarios.
Aunque ha aplicado algunos controles indirectos, como verificar el $ Pagenow global, investigaciones anteriores han demostrado que esta variable puede contener entradas arbitrarias. Los malos actores podrían usar este punto final para descargar las copias de seguridad de los archivos y la base de datos en función de la información que han drenado del error del ritmo cardíaco anterior. Cronología 2022-02-14 Inicial Contacto con UPDraftPlus 2022-02-15-We Enviemos detalles sobre esta vulnerabilidad 2022-02-02-16 UPDraftPlus 1.22.3.
Conclusión Le recomendamos que verifique qué versión del complemento UpdraftPlus está utilizando su sitio y, si está en el rango afectado, ¡actualice lo antes posible!En Jetpack, trabajamos duro para asegurarnos de que sus sitios estén protegidos por este tipo de vulnerabilidades.Le recomendamos que tenga un plan de seguridad para su sitio que incluya escanear archivos y copias de seguridad maliciosos.Jetpack Security es una excelente opción de seguridad de WordPress para asegurarse de que el sitio y los visitantes estén seguros.Créditos del investigador original: Marc Montpasmul Descansamos el resto del equipo de exploración de Jetpack para obtener comentarios, ayuda y correcciones.
Se remedió una vulnerabilidad grave en UpdraftPlus 1.22.3
Tags Se remedió una vulnerabilidad grave en UpdraftPlus 1.22.3
homefinance blog