Na digressão desta semana, discutiremos:
- Linode Terraform (TF) Criação de Senha Determinística do Provedor
- Apache Execução de Código Remoto de Texto Comum (RCE)
- Vm2 fuga de caixa de areia para RCE
Linode Terraform Provider Create a Non-seed deterministic Password
Uma vulnerabilidade de segurança foi descoberta no Linode Terraform Provider, um plugin projetado para automatizar instâncias de provisionamento Linode usando Terraform. Terraform é uma ferramenta IaC que se concentra na criação, modificação e destruição de servidores em vez de gerenciar o software nesses servidores.
A vulnerabilidade afeta os Linodes criados com o Terraform plugin versão v1.29.3. No provedor Terraform , quando um Linode é criado sem fornecer uma senha root, o provedor TF usa uma senha gerada aleatoriamente. A versão plugin afetada parece gerar senhas determinísticas devido a uma mudança em nossa funcionalidade de geração de senhas. O componente vulnerável envolveu o uso do pacote matemático/rand Go em vez do pacote criptográfico/rand para produção de senhas aleatórias. Além disso, o pacote matemático/rand não estava sendo semeado.
Para proteger suas futuras implementações, atualize a ferramenta Linode Terraform Provider para a versão mais recente, atualmente v1.29.4. Se você não for capaz de atualizar imediatamente, você também pode alterar a senha raiz nas instâncias implantadas através do plugin afetado.
Se você precisar de mais assistência, ou se tiver alguma dúvida, por favor entre em contato com support@linode.com.
Apache Execução de Código Remoto de Texto Comum (RCE)
Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded. The standard format for interpolation is “${prefix:name}”, where “prefix” is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation.
CVE-2022-42889 é uma execução de código remoto que existe em Apache Commons Versão de texto 1.5 a 1.9 onde o conjunto de instâncias de pesquisa padrão (da classe StringSubstitutor) incluía interpoladores que poderiam resultar na execução arbitrária do código ou no contato com servidores remotos. As buscas vulneráveis são:
- "script" - Executa expressões usando o motor de execução de scripts da JVM (javax.script)
- "dns" - Resolve os registros DNS
- "url" - Valores de carga de URLs
Além disso, quaisquer aplicações de servidor remoto que utilizem padrões de interpolação nas versões afetadas podem ser vulneráveis à execução de código remoto ou ao contato não intencional com servidores remotos se forem utilizados valores de configuração não confiáveis.
A maneira de determinar se você tem esta biblioteca instalada é executar `find / -type f -name 'commons-text*.jar', que nos dará qualquer arquivo .jar com o prefixo de commons-text.
A correção está disponível a partir de Apache Commons Texto 1.10.0. A correção desabilita os interpoladores dns, url, e script lookup por padrão. Outras soluções também podem ser aplicadas, que incluem a higienização de entrada em locais onde você aceita e processa dados não confiáveis.
Vm2 fuga de caixa de areia para RCE
vm2 é um pacote de npm amplamente utilizado que atua como uma caixa de areia onde você pode executar código não confiável com os módulos embutidos do Node's allowlisted. Este pacote é muito popular com mais de 16 milhões de downloads por mês, o que o torna uma vulnerabilidade digna de ser aproveitada contra uma aplicação com o pacote vm2 instalado.
CVE-2022-36067 é uma execução remota de código que existe na biblioteca de caixas de areia vm2 onde um usuário poderia escapar da caixa de areia de vm2 e ter acesso ao host que opera a caixa de areia. A vulnerabilidade atualmente afeta as versões 3.9.10 e abaixo.
Esta vulnerabilidade envolve o uso do método prepareStackTrace, que é uma função que permite aos desenvolvedores personalizar a pilha de chamadas de um erro que ocorreu na aplicação. O método prepareStackTrace é um construtor de "erro" que cria um objeto de "Erro". Quando um erro ocorre e a propriedade "pilha" do objeto de erro lançado é acessada, Node.js chamará este método enquanto lhe fornece uma representação em cadeia do erro ao lado de um conjunto de objetos "CallSite" como argumentos.
Os pesquisadores começaram substituindo o objeto de erro global por seu próprio objeto. Este novo objeto permite que o atacante utilize a função prepareStackTrace para alavancar uma função sem caixa de areia chamada "getThis", que é uma função usada para devolver o objeto "este" em uma estrutura de empilhamento. Este objeto de stack frame é um objeto não-sandboxed que pode permitir executar funções que escaparão da sandbox e executar código no host no qual o código está rodando.
A correção está disponível a partir da vm2 3.9.11.
Comentários