PT-2020-14223 · Symfony+1 · Symfony/Expression-Language+1
Craig Blanchette
+1
·
Publicado
2020-08-19
·
Atualizado
2021-11-18
·
CVE-2020-15143
CVSS v3.1
8.8
Alta
| Vetor | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do software vulnerável e versões afetadas
Versões do SyliusResourceBundle anteriores à 1.3.14
Versões do SyliusResourceBundle de 1.4.0 a 1.4.6
Versões do SyliusResourceBundle de 1.5.0 a 1.5.1
Versões do SyliusResourceBundle de 1.6.0 a 1.6.3
Descrição
O problema decorre da falta de sanitização adequada dos parâmetros de solicitação quando injetados dentro de uma expressão avaliada pelo pacote
symfony/expression-language. Isso permite que um invasor acesse qualquer serviço público manipulando o parâmetro de solicitação, o que pode levar à execução remota de código.Por exemplo, em uma definição de roteamento como “foo: path: /foo/{id}”, o parâmetro
$id pode ser manipulado para chamar outros serviços. Acessar uma URL como /foo/“~service(‘doctrine’).getManager().getConnection().executeQuery(”DELETE * FROM TABLE“)~” pode resultar na execução de uma consulta no banco de dados atualmente conectado.Recomendações
Para versões do SyliusResourceBundle anteriores à 1.3.14, atualize para a versão 1.3.14 ou posterior.
Para as versões do SyliusResourceBundle de 1.4.0 a 1.4.6, atualize para a versão 1.4.7 ou posterior.
Para as versões do SyliusResourceBundle de 1.5.0 a 1.5.1, atualize para a versão 1.5.2 ou posterior.
Para as versões do SyliusResourceBundle de 1.6.0 a 1.6.3, atualize para a versão 1.6.4 ou posterior.
Como solução temporária, considere adicionar
addslashes em ParametersParser::parseRequestValueExpression para sanitizar a entrada do usuário antes de avaliá-la usando a linguagem de expressão.Exploit
Correção
Special Elements Injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Syliusresourcebundle
Symfony/Expression-Language