Em agosto de 2023, a equipe do Wordfence Threat Intelligence identificou e iniciou o processo de divulgação responsável de uma vulnerabilidade de Cross-Site Scripting (XSS) armazenada no plugin LiteSpeed Cache , que está instalado ativamente em mais de 4.000.000 de sites WordPress, tornando-o o mais popular. plug-in de cache.
A vulnerabilidade permite que agentes de ameaças com permissões de nível de contribuidor ou superior injetem scripts da web maliciosos em páginas usando o shortcode do plug-in.
Todos os clientes Wordfence Premium , Wordfence Care e Wordfence Response , bem como aqueles que ainda usam a versão gratuita do plugin, estão protegidos contra quaisquer explorações direcionadas a esta vulnerabilidade pela proteção integrada de Cross-Site Scripting do firewall Wordfence.
Entramos em contato com a equipe LiteSpeed Cache em 14 de agosto de 2023 e recebemos uma resposta no mesmo dia. Depois de fornecer detalhes completos de divulgação, a equipe de desenvolvedores fez um patch em 16 de agosto de 2023 e o lançou no repositório WordPress em 10 de outubro de 2023. Gostaríamos de elogiar a LiteSpeed Technologies por sua resposta rápida e patch oportuno.
Recomendamos aos usuários que atualizem seus sites com a versão corrigida mais recente do LiteSpeed Cache, versão 5.7 no momento da redação deste artigo, o mais rápido possível.
Resumo de vulnerabilidade do Wordfence Intelligence
afetado: LiteSpeed Cache
Plugin Slug: litespeed-cache
Versões afetadas: <= 5.6
CVE ID: CVE-2023-4372
Pontuação CVSS: 6.4 (Médio )
Vetor CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N Pesquisador/es: Códigos Lana Versão
totalmente corrigida: 5.7
O plug-in LiteSpeed Cache para WordPress é vulnerável a scripts entre sites armazenados por meio do shortcode ‘esi’ em versões até 5.6 inclusive devido à limpeza insuficiente de entrada e escape de saída em atributos fornecidos pelo usuário. Isso possibilita que invasores autenticados com permissões de nível de contribuidor e superiores injetem scripts da web arbitrários em páginas que serão executadas sempre que um usuário acessar uma página injetada.
Análise técnica
O LiteSpeed Cache é um plugin de aceleração de site com cache e otimização em nível de servidor. Ele fornece um shortcode ( [esi]) que pode ser usado para armazenar blocos em cache com a tecnologia Edge Side Inclui quando adicionado a uma página do WordPress, se o ESI tiver sido previamente habilitado nas configurações.
Infelizmente, a implementação insegura da funcionalidade shortcode do plugin permite a injeção de scripts web arbitrários nessas páginas. O exame do código vulnerável revela que o método shortcode na classe ESI não limpa adequadamente a entrada de ‘cache’ fornecida pelo usuário e, em seguida, não consegue escapar da saída de ‘controle’ derivada do parâmetro ‘cache’ quando constrói o bloco ESI. Isso torna possível injetar cargas úteis de Cross-Site Scripting baseadas em atributos por meio do atributo ‘cache’.
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | public function shortcode( $atts ) { if ( empty( $atts[ 0 ] ) ) { Debug2::debug( ‘[ESI] ===shortcode wrong format’, $atts ); return ‘Wrong shortcode esi format’; }
$cache = ‘public,no-vary’; if ( ! empty( $atts[ ‘cache’ ] ) ) { $cache = $atts[ ‘cache’ ]; unset( $atts[ ‘cache’ ] ); }
$silence = false; if ( ! empty( $atts[ ‘_ls_silence’ ] ) ) { $silence = true; }
do_action( ‘litespeed_esi_shortcode-‘ . $atts[ 0 ] );
// Show ESI link return $this->sub_esi_block( ‘esi’, ‘esi-shortcode’, $atts, $cache, $silence ); } |
O método shortcode na classe ESI
420 421 422 423 | public function sub_esi_block( $block_id, $wrapper, $params = array(), $control = ‘private,no-vary’, $silence = false, $preserved = false, $svar = false, $inline_param = array() ) { if ( empty($block_id) || ! is_array($params) || preg_match(‘/[^\w-]/’, $block_id) ) { return false; } |
478 479 480 481 | $output .= “<esi:include src=’$url'”; if ( ! empty( $control ) ) { $output .= ” cache-control=’$control'”; } |
O trecho do método sub_esi_block na classe ESI
Isso possibilita que os agentes de ameaças realizem ataques XSS armazenados. Depois que um script é injetado em uma página ou postagem, ele será executado sempre que um usuário acessar a página afetada. Embora esta vulnerabilidade exija que uma conta de contribuidor confiável seja comprometida ou que um usuário seja capaz de se registrar como contribuidor, os agentes de ameaças bem-sucedidos podem roubar informações confidenciais, manipular o conteúdo do site, injetar usuários administrativos, editar arquivos ou redirecionar usuários para sites maliciosos que são todas consequências graves.
Possibilidades de exploração de shortcode
As versões anteriores do WordPress continham uma vulnerabilidade que permitia que códigos de acesso fornecidos por comentaristas não autenticados fossem renderizados em determinadas configurações. Isso tornaria possível que invasores não autenticados explorassem essa vulnerabilidade de Cross-Site Scripting em instalações vulneráveis.
Felizmente, porém, a grande maioria dos sites foi atualizada automaticamente para uma versão corrigida do WordPress no momento em que este texto foi escrito, o que significa que a maioria dos proprietários de sites não precisa se preocupar com isso. Ainda recomendamos fortemente verificar se o seu site foi atualizado para uma das versões corrigidas do núcleo do WordPress encontradas aqui.
Cronograma de divulgação
14 de agosto de 2023 – A equipe do Wordfence Threat Intelligence descobre a vulnerabilidade XSS armazenada no LiteSpeed Cache.
14 de agosto de 2023 – Inicia-se contato com o fornecedor do plugin solicitando que ele confirme a caixa de entrada para tratamento da discussão.
14 de agosto de 2023 – O fornecedor confirma a caixa de entrada para tratar da discussão.
14 de agosto de 2023 – Os detalhes completos da divulgação foram enviados. O fornecedor reconhece o relatório e começa a trabalhar em uma correção.
16 de agosto de 2023 – O fornecedor fez o patch e nos enviou o commit do GitHub.
10 de outubro de 2023 – A versão totalmente corrigida, 5.7, é lançada.
Incentivamos os usuários do WordPress a verificar se seus sites estão atualizados para a versão corrigida mais recente do LiteSpeed Cache.
Todos os usuários do Wordfence, incluindo aqueles que executam o Wordfence Premium , Wordfence Care e Wordfence Response , bem como sites que ainda executam a versão gratuita do Wordfence, estão totalmente protegidos contra esta vulnerabilidade.
Se você conhece alguém que usa este plug-in em seu site, recomendamos compartilhar este aviso com essa pessoa para garantir que seu site permaneça seguro, pois essa vulnerabilidade representa um risco significativo.
Para pesquisadores de segurança que desejam divulgar vulnerabilidades de maneira responsável e obter um ID CVE, você pode enviar suas descobertas para o Wordfence Intelligence e potencialmente ganhar um lugar em nossa tabela de classificação .