CVE-2023-34252
Grav Server-side Template Injection via Insufficient Validation in filterFilter
Em resumo
O Grav CMS possui uma falha na validação de filtros de template que permite que invasores com acesso administrativo injetem código malicioso e tomem controle do site. A vulnerabilidade existe porque a verificação de segurança pode ser contornada passando dados em um formato específico.
Detalhe técnico
Injeção de template no lado do servidor na função GravExtension.filterFilter() do Grav causada por validação insuficiente de entrada quando arrays chamáveis contornam a verificação de lista bloqueada de funções perigosas. Um atacante autenticado com permissões de criação/atualização de páginas pode injetar templates Twig arbitrários para obter execução remota de código. Patch disponível na versão 1.7.42; mitigação inclui desabilitar twig.undefined_functions e twig.undefined_filters em system.yaml.
Resumo gerado e traduzido por IA a partir da descrição oficial.
Grav is a flat-file content management system. Prior to version 1.7.42, there is a logic flaw in the `GravExtension.filterFilter()` function whereby validation against a denylist of unsafe functions is only performed when the argument passed to filter is a string. However, passing an array as a callable argument allows the validation check to be skipped. Consequently, a low privileged attacker with login access to Grav Admin panel and page creation/update permissions is able to inject malicious templates to obtain remote code execution. The vulnerability can be found in the `GravExtension.filterFilter()` function declared in `/system/src/Grav/Common/Twig/Extension/GravExtension.php`. Version 1.7.42 contains a patch for this issue. End users should also ensure that `twig.undefined_functions` and `twig.undefined_filters` properties in `/path/to/webroot/system/config/system.yaml` configuration file are set to `false` to disallow Twig from treating undefined filters/functions as PHP functions and executing them.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H