Falhas críticas no plugin LearnPress afetam 75 mil sites WordPress

Apesar de correções já terem sidos publicadas na versão 4.2.0, as falhas críticas no plugin LearnPress afetam 75 mil sites WordPress.

O LearnPress é um plug-in do sistema de gerenciamento de aprendizado (LMS) que permite que os sites WordPress criem e vendam facilmente cursos, lições e questionários on-line, fornecendo aos visitantes uma interface amigável, sem exigir conhecimento de codificação do desenvolvedor do site.

O plug-in do curso on-line do WordPress ‘LearnPress’ era vulnerável a várias falhas de gravidade crítica, incluindo injeção de SQL pré-autenticação e inclusão de arquivo local.

As vulnerabilidades no plug-in, usado em mais de 100.000 sites ativos, foram descobertas pelo PatchStack entre 30 de novembro e 2 de dezembro de 2022 e relatadas ao fornecedor do software.

Os problemas foram corrigidos em 20 de dezembro de 2022, com o lançamento do LearnPress versão 4.2.0. No entanto, de acordo com as estatísticas do WordPress.org, apenas cerca de 25% aplicaram a atualização.

Isso significa que cerca de 75.000 sites podem estar usando uma versão vulnerável do LearnPress, expondo-se a graves falhas de segurança, cuja exploração pode ter sérias repercussões.

Falhas críticas no plugin LearnPress afetam 75 mil sites WordPress

Falhas críticas no plugin LearnPress afetam 75 mil sites WordPress
Falhas críticas no plugin LearnPress afetam 75 mil sites WordPress – Versões do LearnPress em instalações ativas (WordPress)

A primeira vulnerabilidade descoberta pelo PatchStack é a CVE-2022-47615, uma falha de inclusão de arquivo local não autenticado (LFI) que permite que invasores exibam o conteúdo de arquivos locais armazenados no servidor da web.

Isso pode expor credenciais, tokens de autorização e chaves de API, levando a um maior comprometimento.

A vulnerabilidade é encontrada em um trecho de código que lida com requisições de API para o site, localizado na função “list_courses”, que não valida certas variáveis ($template_pagination_path, $template_path e $template_path_item) corretamente.

Um invasor pode explorar o CVE-2022-47615 enviando uma solicitação de API especialmente criada e usando valores maliciosos para as três variáveis.

A segunda falha crítica é o CVE-2022-45808, uma injeção SQL não autenticada que pode levar à divulgação de informações confidenciais, modificação de dados e execução arbitrária de código.

Essa vulnerabilidade está em uma função que manipula consultas SQL para o site, que não limpa e valida corretamente a variável “$filter” nos parâmetros da consulta, permitindo que um invasor insira um código malicioso nela.

Falhas críticas no plugin LearnPress afetam 75 mil sites WordPress
Falhas críticas no plugin LearnPress afetam 75 mil sites WordPress – Exemplo de injeção de SQL (PatchStack)

A terceira falha que afeta as versões mais antigas do LearnPress é CVE-2022-45820, uma falha de injeção SQL autenticada em dois shortcodes do plug-in (“learn_press_recent_courses” e “learn_press_featured_courses”) falhando em validar e higienizar adequadamente a entrada da variável “$args”.

O PatchStack forneceu uma exploração de prova de conceito mostrando como um usuário ‘Contributor’ poderia acionar a injeção de SQL usando um shortcode especialmente criado em uma postagem rascunhada.

Essa vulnerabilidade precisa ser executada por um usuário com a capacidade de editar ou criar uma nova postagem no blog, limitando o risco da falha.

O fornecedor corrigiu os problemas acima introduzindo uma lista de permissões e sanitização das variáveis vulneráveis ou removendo a capacidade de incluir modelos na entrada do usuário.

Proprietários de sites que dependem do LearnPress são aconselhados a atualizar para a versão 4.2.0 ou desabilitar o plug-in até que possam aplicar a atualização de segurança disponível.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.