top of page
Foto do escritorCyber Security Brazil

Falha no plug-in do WordPress expõe 1 milhão de sites do WordPress a ataques de RCE

Uma vulnerabilidade crítica no plug-in WPML (WordPress Multilingual) deixou mais de um milhão de sites WordPress suscetíveis a ataques de execução remota de código (RCE). A falha, identificada como CVE-2024-6386, afeta todas as versões do WPML até a 4.6.12.


Essa vulnerabilidade permite que usuários autenticados com permissões de colaborador ou superiores executem códigos arbitrários no servidor, potencialmente assumindo o controle completo do site. A falha foi descoberta pelo pesquisador de segurança “stealth copter” e comunicada por meio do programa de recompensas por bugs do Wordfence, resultando em uma recompensa de US$ 1.639 pela descoberta.


Análise Técnica

O problema origina-se da falta de validação e sanitização de entradas no uso do Twig, um popular mecanismo de modelagem utilizado pelo plug-in. Especificamente, a vulnerabilidade reside na função render() da classe WPML_LS_Public_API, que processa modelos Twig fornecidos pelo usuário sem sanitização adequada.


protected function render( $args, $twig_template = null ) {
    $defaults_slot_args = $this->get_default_slot_args( $args );
    $slot_args = array_merge( $defaults_slot_args, $args );
    $slot = $this->get_slot_factory()->get_slot( $slot_args );
    $slot->set( 'show', 1 );
    $slot->set( 'template_string', $twig_template );
    Se ( $slot->is_post_translations() ) {
        $output = $this->render->post_translations_label( $slot );
    } else {
        $output = $this->render->render( $slot );
    }    return $output;
}

Essa função falha ao sanitizar o modelo Twig, permitindo que invasores injetem e executem códigos maliciosos no servidor.


Exploração de Prova de Conceito

Uma prova de conceito demonstra como a vulnerabilidade pode ser explorada. Utilizando o shortcode [wpml_language_switcher], invasores podem injetar código Twig que executa funções PHP, como phpinfo(), expondo informações sensíveis do servidor.


[wpml_language_switcher]
{% set call_user_func = c~a~l~l~_~u~s~e~r~_~f~u~n~c %}
{% set phpinfo = p~h~p~i~n~f~o %}
{{ {1: phpinfo}|filter(call_user_func) }}
[/wpml_language_switcher]

Este exemplo usa o filtro do Twig para chamar phpinfo(), ilustrando o potencial para explorações ainda mais prejudiciais.


Resposta e Mitigação

O Wordfence agiu rapidamente, implementando uma regra de firewall em 27 de junho de 2024 para proteger seus usuários premium. Em julho de 2024, a proteção foi estendida aos usuários gratuitos. A equipe de desenvolvimento do WPML lançou um patch em 20 de agosto de 2024, na versão 4.6.13, corrigindo a falha.


Recomenda-se que todos os usuários atualizem para a versão mais recente do WPML para mitigar o risco. A vulnerabilidade recebeu uma pontuação CVSS de 9,9, destacando a urgência da atualização. Este incidente sublinha a importância de práticas de segurança rigorosas e de manter os plug-ins sempre atualizados no ecossistema WordPress.


Com o crescente nível de complexidade dos plug-ins, vulnerabilidades como essa reforçam a necessidade de vigilância contínua e de medidas proativas para proteger a segurança dos sites.


Via - CN

62 visualizações0 comentário

留言


bottom of page