WordPress lança uma atualização de segurança seguida por uma correção de bug
O WordPress publicou a versão de segurança 6.9.2 para corrigir várias vulnerabilidades, mas a atualização fez com que alguns sites travassem (exibindo uma tela branca), então o WordPress rapidamente seguiu com uma atualização adicional que contém uma correção de bug para o problema introduzido pela versão 6.9.2.
A empresa de segurança WordPress Wordfence publicou detalhes de quatro das vulnerabilidades, que foram classificadas como de gravidade média, enquanto o WordPress.org publicou a lista completa de dez, incluindo uma que se deve a uma biblioteca PHP externa.
Linha do tempo de falhas de sites WordPress
Alguns usuários do WordPress relataram que a atualização de segurança causou o travamento de seus sites. Alguns no Reddit especularam que havia algo errado com o patch de segurança do WordPress, inferindo que estava relacionado à codificação do Vibe. Uma discussão nos fóruns oficiais do WordPress descrevendo problemas com a funcionalidade do site também começou logo após o lançamento do patch de segurança.
A primeira postagem descreveu o problema:
“Há alguns minutos recebi uma atualização do Dreamhost informando que meu site foi atualizado automaticamente para WP 6.9.2. Agora, qualquer página que tento carregar fica em branco. Ainda consigo fazer login no back-end, as páginas ainda estão lá para edição, o conteúdo está presente, mas quando vou para a página inicial ou qualquer outra página, nada é exibido (a fonte de visualização também está vazia).
WordPress 6.9.2 com tema Crio, atualizado.”
Outros seguiram, descrevendo problemas semelhantes, e algumas postagens depois, um dos principais desenvolvedores respondeu dizendo que o problema está diretamente relacionado a algo em determinados temas e sugeriu verificar isso mudando para outro tema. Sete horas após a postagem inicial, a pessoa que iniciou o tópico postou novamente para observar que o WordPress havia lançado uma correção de bug, versão 6.9.3, para resolver os problemas introduzidos pela versão 6.9.2, que se deviam à forma como certos temas foram codificados e não à versão de segurança em si.
Resposta oficial do WordPress
O problema com o travamento de sites parece estar relacionado à maneira não padrão com que certos temas carregam arquivos de modelo. Esses temas usavam uma forma não suportada de carregar modelos, o que levou a um conflito com o patch. Os engenheiros do WordPress lançaram rapidamente um patch adicional para resolver esses problemas, embora o problema estivesse no lado do tema, não no WordPress.
De acordo com as notas do WordPress para a correção de bug na versão 6.9.3:
“Esta versão apresenta uma correção de bug para alguns temas que usam um mecanismo incomum de “objeto stringável” ao carregar caminhos de arquivo de modelo que quebraram na versão de segurança 6.9.2.
Embora esta não seja uma abordagem oficialmente suportada para carregar arquivos de modelo no WordPress (o filtro template_include aceita apenas uma string), ela causou a quebra de alguns sites, então a equipe decidiu resolver isso em uma versão 6.9.3 de acompanhamento rápido. Os usuários que usam temas afetados devem atualizar para 6.9.3 para restaurar o front-end de seu site para um estado operacional.”
Assessoria Wordfence
O Wordfence publicou detalhes de quatro das vulnerabilidades, com classificações de gravidade CVSS de 4,3 a 6,4 em uma escala de 1 a 10, sendo 10 o nível de gravidade mais alto. Todos eles exigem autenticação para serem explorados, o que significa que um invasor precisaria primeiro obter permissões de usuário, desde o nível de assinante até o nível de administrador, para lançar um ataque.
Lista de quatro vulnerabilidades descritas pelo Wordfence:
- Classificação de gravidade CVSS 4.3
WordPress 6.9 – 6.9.1 – Autorização ausente para criação de notas arbitrárias autenticadas (assinante +) via API REST - Classificação de gravidade CVSS 4.3
WordPress <= 6.9.1 – Autorização ausente para divulgação de informações confidenciais autenticadas (Autor +) por meio de anexos de consulta AJAX Endpoint - Classificação de gravidade CVSS 4.4
WordPress <= 6.9.1 – Scripting entre sites armazenados autenticados (Administrador+) por meio de itens do menu de navegação - Classificação de gravidade CVSS 6,5
WordPress <= 6.9.1 – Injeção de entidade externa XML autenticada (Autor +) via upload de mídia da biblioteca getID3
O comunicado do Wordfence para a vulnerabilidade mais séria, classificado como 6,5/10, descreveu a falha:
“O núcleo do WordPress é vulnerável à injeção de entidade externa XML (XXE) por meio da biblioteca getID3 incluída em todas as versões até 6.9.1 inclusive. Isso se deve à constante `GETID3_LIBXML_OPTIONS`, incluindo o sinalizador `LIBXML_NOENT`, que permite a substituição de entidade XML durante a análise.
Quando o WordPress processa arquivos de mídia contendo metadados XML (especificamente pedaços iXML em arquivos WAV/RIFF/AVI), a biblioteca getID3 analisa o XML com substituição de entidade habilitada, permitindo a divulgação de arquivos locais por meio de URIs de protocolo `file://`. Isso pode possibilitar que invasores autenticados com acesso de autor leiam arquivos arbitrários do servidor.”
Esta é a lista completa de dez vulnerabilidades:
- Um problema cego de SSRF
- Um ponto fraco da cadeia PoP na API HTML e no Block Registry
- Uma fraqueza DoS regex em referências de caracteres numéricos
- Um XSS armazenado nos menus de navegação
- Um desvio de autorização de anexos de consulta AJAX
- Um XSS armazenado por meio da diretiva data-wp-bind
- Um XSS que permite substituir modelos do lado do cliente na área administrativa
- Um problema de passagem do caminho PclZip
- Um desvio de autorização no recurso Notas
- Um XXE na biblioteca getID3 externa
Recomendações
Não se sabe quão graves são as outras seis vulnerabilidades, embora aquelas descritas pelo Wordfence tenham sido classificadas apenas em um nível médio de gravidade e exigissem que um invasor primeiro atingisse uma função de usuário. No entanto, o WordPress recomenda que os editores de sites atualizem seus sites imediatamente.
Imagem em destaque da Shutterstock/Quem é Danny
