El complemento Security & Malware Scan by CleanTalk para WordPress (más de 5,000 instalaciones activas) corrigió una vulnerabilidad que afectaba a la versión 2.50 y versiones posteriores que podría permitir que cualquier usuario autenticado interactúe con todas sus acciones AJAX.
Seguridad Nonce Fuga
El complemento registra más de 40 acciones AJAX en el script “security-malware-firewall / inc / spbc-admin.php”. La mayoría de ellos no verifican la capacidad del usuario, sino que solo se basan en un elemento de seguridad no incluido en la spbc_enqueue_scripts
función:
292 función spbc_enqueue_scripts ( $ hook ) { 293 294 global $ spbc ; 295 296 // Para TODAS las páginas de administración 297 wp_enqueue_style ( 'spbc_admin_css' , SPBC_PATH . '/Css/spbc-admin.min.css' , array (), SPBC_VERSION , 'all' ); 298 299 wp_enqueue_script ( 'spbc-common-js' , SPBC_PATH . '/Js/spbc-common.min.js' , array ( 'jquery' ), SPBC_VERSION , falso ); 300 wp_enqueue_script ( 'spbc-admin-js' , SPBC_PATH . '/Js/spbc-admin.min.js' , array ( 'jquery' ), SPBC_VERSION , falso ); 301 302 wp_localize_script ( 'jquery' , 'spbcSettings' , array ( 303 'WPMS' => ( int ) is_multisite (), 304 'is_main_site' => is_main_site (), 305 'tc_enabled' => $ spbc -> tc_enabled ? 1 : 0 , 306 'img_path' => SPBC_PATH . '/ images' , 307 'key_is_ok' => $ spbc -> key_is_ok , 308 'ajax_nonce' => wp_create_nonce ( "spbc_secret_nonce" ), 309 'ajaxurl' => admin_url ( 'admin-ajax.php' ), 310 'debug ' => ! vacío ( $ depuración ) ? 1 : 0 , 311 ));
El admin_enqueue_scripts
gancho carga la función , es decir, cada vez que alguien accede al backend, en el script “security-malware-firewall / security-malware-firewall.php”:
292 add_action ( 'admin_enqueue_scripts' , 'spbc_enqueue_scripts' );
Por lo tanto, el nonce es accesible para cualquier usuario que haya iniciado sesión, incluido un suscriptor, en la fuente de la página HTML:
Un atacante podría usarlo para interactuar con todas las acciones de AJAX, lo que podría generar múltiples vulnerabilidades debido a la eliminación arbitraria de archivos y la descarga a la inyección de la función PHP, entre otros problemas:
Cronograma
La vulnerabilidad se informó a los autores el 4 de junio de 2020 y se lanzó una nueva versión 2.51 el 30 de junio de 2020.
Recomendaciones
Actualice de inmediato si tiene la versión 2.50 o inferior. Si está utilizando nuestro firewall de aplicaciones web para WordPress, NinjaFirewall WP Edition (gratis) y NinjaFirewall WP + Edition (premium), está protegido contra esta vulnerabilidad.