Avançar para o conteúdo principal
BlogSegurançaLinode Security Digest 16-23 de Outubro de 2022

Linode Security Digest 16-23 de Outubro de 2022

Linode Security Digest

No resumo desta semana, iremos discutir:

  • Linode Terraform (TF) Criação de senha determinística do fornecedor
  • Apache Execução de Código Remoto de Texto Comum (RCE)
  • Vm2 fuga da caixa de areia para a RCE

Linode Terraform Provider Create a Non-seed deterministic Password 

Foi descoberta uma vulnerabilidade de segurança no Provedor Linode Terraform , um plugin concebido para automatizar instâncias de aprovisionamento Linode utilizando Terraform. Terraform é uma ferramenta de IaC que se concentra na criação, modificação e destruição de servidores em vez de gerir o software nesses servidores. 

A vulnerabilidade afecta os Linodes criados com o Terraform plugin versão v1.29.3. No provedor Terraform , quando um Linode é criado sem fornecer uma senha de raiz, o provedor TF utiliza uma senha gerada aleatoriamente. A versão plugin afectada parece gerar palavras-passe determinísticas devido a uma alteração na nossa funcionalidade de geração de palavras-passe. O componente vulnerável envolveu a utilização 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 a ser semeado. 

Para proteger as suas futuras implementações, actualize a ferramenta Linode Terraform Provider para a versão mais recente, actualmente v1.29.4. Se não for capaz de actualizar imediatamente, pode também alterar a palavra-passe raiz nas instâncias implantadas através do plugin afectado.

Se precisar de mais assistência, ou se tiver alguma dúvida, por favor contacte 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 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 contacto com servidores remotos. As consultas vulneráveis são:

  • "script" - Executa expressões usando o motor de execução de scripts da JVM (javax.script)
  • "dns" - Resolve registos DNS 
  • "url" - Carregar valores de URLs

Além disso, quaisquer aplicações de servidor remoto que utilizem padrões de interpolação nas versões afectadas podem ser vulneráveis à execução de código remoto ou ao contacto não intencional com servidores remotos se forem utilizados valores de configuração não confiáveis. 

A forma de determinar se tem esta biblioteca instalada é executar `find / -type f -name 'commons-text*.jar'`, que nos dará qualquer ficheiro .jar com o prefixo de commons-text. 

A correcção está disponível a partir de Apache Commons Texto 1.10.0. A correcção desactiva por defeito os interpoladores dns, url, e script lookup. Podem também ser aplicadas outras soluções de trabalho, que incluem a entrada de dados de higienização em locais onde se aceitam e processam dados não confiáveis. 

Vm2 fuga da caixa de areia para a RCE

vm2 é um pacote de npm amplamente utilizado que funciona como uma caixa de areia onde se pode correr código não confiável com os módulos incorporados do Nodo de permissão listados. 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 de código à distância que existe na biblioteca da caixa de areia vm2 onde um utilizador poderia escapar à caixa de areia de vm2 e ter acesso ao anfitrião que executa a caixa de areia. A vulnerabilidade afecta actualmente as versões 3.9.10 e seguintes. 

Esta vulnerabilidade envolve a utilização do método prepareStackTrace, que é uma função que permite aos programadores personalizar a pilha de chamadas de um erro que ocorreu na aplicação. O método prepareStackTrace é um construtor de "erro" que cria um objecto de "Erro". Quando um erro ocorre e a propriedade "pilha" do objecto de erro lançado é acedida, Node.js chamará este método enquanto lhe fornece uma representação em cadeia do erro juntamente com um conjunto de objectos "CallSite" como argumentos. 

Os investigadores começaram por sobrepor o objecto de erro global ao seu próprio objecto. Este novo objecto permite que o atacante utilize a função prepareStackTrace a fim de alavancar uma função não "getThis", que é uma função utilizada para devolver o "este" objecto numa estrutura de pilha. Este objecto de stack frame é um objecto não "sandboxed" que pode permitir executar funções que escaparão à sandbox e executar o código no anfitrião em que o código está a correr. 

A reparação está disponível a partir da vm2 3.9.11. 


Comentários

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *