
Exploit de prova de conceito para CVE-2021-26121: Injeção de Template no Lado do Servidor no CS-Cart <=4.12.x permitindo que o administrador da loja execute código remotamente através da edição de templates Smarty.
Encontrado por: Steven Seeley da 360 Vulcan Team
Versão: <= 4.12.x (mais recente)
Data: 2021-01-08 12:49
CVE: CVE-2021-26121
Um administrador de loja (não confundir com um administrador raiz) pode obter execução remota de código por meio de injeção de template Smarty no lado do servidor ao editar templates. Isso se deve ao fato de que o CSCart não implementa a sandbox do Smarty conforme descrito na documentação https://www.smarty.net/docs/en/advanced.features.tpl#advanced.features.security.
Isso normalmente não é uma grande preocupação, mas no CSCart significa que um administrador de loja pode obter acesso aos dados de outros administradores de loja (e ao sistema operacional subjacente). Imagino que vocês consideram essa fronteira de segurança, razão pela qual corrigiram o CVE-2017-15673.
Ao fazer login como administrador de loja, você pode editar qualquer um dos templates. Neste caso, editei o arquivo de template my_account.tpl adicionando {phpinfo()}

Em seguida, após visualizar a página inicial e clicar no menu suspenso 'my account', é possível acionar a execução do template:

Também é possível acionar esta vulnerabilidade se o administrador da loja tiver apenas acesso a Files por meio de atribuição de grupo, sem nenhuma outra permissão.

E aqui está a vulnerabilidade impactando o site de demonstração https://[redacted]/:
