.

Getty Images
Os hackers estão explorando ativamente uma vulnerabilidade crítica em um plugin WordPress amplamente usado que lhes dá a capacidade de assumir o controle total de milhões de sites, disseram os pesquisadores.
A vulnerabilidade, que carrega uma classificação de gravidade de 8,8 em 10 possíveis, está presente no Elementor Pro, um plug-in premium executado em mais de 12 milhões de sites com o sistema de gerenciamento de conteúdo WordPress. O Elementor Pro permite que os usuários criem sites de alta qualidade usando uma ampla variedade de ferramentas, uma das quais é o WooCommerce, um plug-in separado do WordPress. Quando essas condições são atendidas, qualquer pessoa com uma conta no site – digamos, um assinante ou cliente – pode criar novas contas com privilégios totais de administrador.
A vulnerabilidade foi descoberta por Jerome Bruandet, pesquisador da empresa de segurança NinTechNet. Na semana passada, a Elementor, desenvolvedora do plug-in Elementor Pro, lançou a versão 3.11.7, que corrigiu a falha. Em um post publicado na terça-feira, Bruandet escreveu:
Um invasor autenticado pode aproveitar a vulnerabilidade para criar uma conta de administrador ativando o registro (
users_can_register
) e definindo a função padrão (default_role
) para “administrador”, altere o endereço de e-mail do administrador (admin_email
) ou, conforme mostrado abaixo, redirecione todo o tráfego para um site malicioso externo alterandositeurl
entre muitas outras possibilidades:MariaDB [example]> SELECT * FROM `wp_options` WHERE `option_name`='siteurl'; +-----------+-------------+------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+------------------+----------+ | 1 | siteurl | https://evil.com | yes | +-----------+-------------+------------------+----------+ 1 row in set (0.001 sec)
Agora, pesquisadores de uma empresa de segurança separada, PatchStack, relatam que a vulnerabilidade está sendo explorada ativamente. Os ataques vêm de uma variedade de endereços IP, incluindo:
- 193.169.194.63
- 193.169.195.64
- 194.135.30.6
Os arquivos enviados para sites comprometidos geralmente têm os seguintes nomes:
- wp-resortpack.zip
- wp-rate.php
- ll.zip
URLs de sites comprometidos são frequentemente alterados para:
- ausente[dot]trackersline[dot]com
A vulnerabilidade do controle de acesso quebrado decorre do uso do componente “elementor-pro/modules/woocommerce/module.php” do Elementor Pro. Quando o WooCommerce está em execução, este script registra as seguintes ações AJAX:
/** * Register Ajax Actions. * * Registers ajax action used by the Editor js. * * @since 3.5.0 * * @param Ajax $ajax */ public function register_ajax_actions( Ajax $ajax ) { // `woocommerce_update_page_option` is called in the editor save-show-modal.js. $ajax->register_ajax_action( 'pro_woocommerce_update_page_option', [ $this, 'update_page_option' ] ); $ajax->register_ajax_action( 'pro_woocommerce_mock_notices', [ $this, 'woocommerce_mock_notices' ] ); }
e
/** * Update Page Option. * * Ajax action can be used to update any WooCommerce option. * * @since 3.5.0 * * @param array $data */ public function update_page_option( $data ) { update_option( $data['option_name'], $data['editor_post_id'] ); }
A função update_option “deve permitir que o administrador ou o gerente da loja atualize algumas opções específicas do WooCommerce, mas as entradas do usuário não são validadas e a função carece de uma verificação de capacidade para restringir seu acesso apenas a um usuário com privilégios elevados”, explicou Bruandet. Ele continuou:
Elementor usa seu próprio manipulador AJAX para gerenciar a maioria de suas ações AJAX, incluindo
pro_woocommerce_update_page_option
com o mundoelementor_ajax
Ação. Ele está localizado no script “elementor/core/common/modules/ajax/module.php” da versão gratuita (que é necessário para executar o Elementor Pro):/** * Handle ajax request. * * Verify ajax nonce, and run all the registered actions for this request. * * Fired by `wp_ajax_elementor_ajax` action. * * @since 2.0.0 * @access public */ public function handle_ajax_request() { if ( ! $this->verify_request_nonce() ) { $this->add_response_data( false, esc_html__( 'Token Expired.', 'elementor' ) ) ->send_error( Exceptions::UNAUTHORIZED ); } ...
Qualquer pessoa que use o Elementor Pro deve garantir que esteja executando a versão 3.11.7 ou posterior, pois todas as versões anteriores são vulneráveis. Também é uma boa ideia que esses usuários verifiquem seus sites quanto aos sinais de infecção listados na postagem do PatchStack.
.