
Magento 2 patch para CVE-2022-24086, CVE-2022-24087. Corrige a vulnerabilidade RCE e bugs relacionados realizando escapamento profundo de variáveis de template. Se não puder atualizar o Magento ou não puder aplicar os patches oficiais, experimente este.
Magento 2 patch para CVE-2022-24086, CVE-2022-24087. Corrige a vulnerabilidade RCE e bugs relacionados realizando escape profundo de variáveis de template. Se você não pode atualizar o Magento ou não pode aplicar os patches oficiais, experimente este.
CVE-2022-24086 (com CVE-2022-24087) foi descoberto no início de 2022.
Lojas afetadas vêm com esta vulnerabilidade de Execução Remota de Código (RCE) sem solução alternativa. 2 patches isolados oficiais foram lançados em fevereiro de 2022.
No entanto, mesmo no final de 2024, ainda estamos recebendo consultas sobre este problema e suas lojas invadidas foram identificadas como tendo sido exploradas por esta vulnerabilidade. Os ataques observados foram realizados inserindo uma string que contém template directive. Tipicamente, aproveitando o processo de checkout, ações que podem disparar o envio de e-mails com campos controláveis pelo usuário, etc.
Criamos este patch devido a este ataque generalizado e ao fato de algumas lojas ainda terem dificuldades para atualizar para versões não afetadas ou aplicar os 2 patches oficiais.
Ao criar este patch como uma extensão, mantemos a compatibilidade em mente. Foi testado principalmente na série Magento 2.4.
Embora a documentação oficial diga "métodos não podem mais ser chamados a partir de variáveis, seja da diretiva var ou quando usados como parâmetros", mas, como confirmamos, mesmo na versão mais recente (2.4.7-p3), ainda é permitido chamar o método "Getter" em um Data Object e chamar o método getUrl no Objeto de Template de E-mail (\Magento\Email\Model\AbstractTemplate).
Este patch (extensão) também mantém as características acima. Portanto, {{var data_object.something}} e {{var data_object.getSomething()}} são ambos aceitáveis e equivalentes.
Exemplo do getUrl:
{{var this.getUrl($store,'route_id/controller/action',[_query:[param1:$obj.param1,param2:$obj.param2],_nosid:1])}}
Em resumo, após instalar esta extensão:
\Magento\Framework\DataObject ou suas instâncias filhas não podem ser acessados\Magento\Framework\DataObject e suas instâncias filhasgetUrl funciona apenas em thisRemoveu LegacyResolver para interromper o RCE.
Introduziu "diretiva adiada com assinatura" para template filho. Não temos certeza se isso traz alguma melhoria de segurança.
Ainda possui um bug não corrigido (#39353).
Usamos "escape profundo de variáveis de template" antes do processo de filtragem do template. O LegacyResolver receberá apenas dados de usuário escapados e, portanto, pode ser mantido.
Magento 2.3 ou 2.4
composer require wubinworks/module-template-filter-patch
Se você gostou desta extensão ou esta extensão ajudou você, por favor, dê ★estrela☆ neste repositório.
Você também pode gostar de:
Magento 2 patch para CVE-2024-34102 (também conhecido como Cosmic Sting)
Segurança XML Aprimorada para Magento 2
CLI de Gerenciador de Chave de Criptografia para Magento 2
Patch de Autenticação JWT para Magento 2
Extensão para Desabilitar Alteração de E-mail do Cliente no Magento 2
Extensão para Desabilitar Cliente no Magento 2