Falha de segurança na linguagem de programação R que pode ser explorada por agentes mal-intencionados. Essa vulnerabilidade está relacionada à desserialização de dados não confiáveis e afeta arquivos nos formatos RDS (R Data Serialization) e .rdx.
A causa raiz dessa vulnerabilidade, conhecida como CVE-2024-27322, reside no fato de que dados não confiáveis, quando desserializados, podem levar à execução arbitrária de código. Isso significa que um invasor pode criar arquivos maliciosos no formato RDS ou .rdx, e quando esses arquivos são carregados e referenciados, comandos arbitrários podem ser executados no dispositivo da vítima.
Essa falha de segurança expõe os usuários a ataques à cadeia de suprimentos, especialmente por meio de pacotes R especialmente criados. Os pacotes R utilizam o formato RDS para salvar e carregar dados, e é nesse ponto que a execução automática de código malicioso pode ocorrer.
Portanto, é crucial que os desenvolvedores estejam cientes dessa vulnerabilidade e tomem medidas para mitigá-la, como atualizar seus sistemas e verificar a origem e integridade dos pacotes R utilizados em seus projetos.
A linguagem de programação R oferece suporte à serialização de dados, que é o processo de transformar objetos e dados R em um formato que pode ser desserializado em outra sessão R. Isso permite criar uma cópia dos objetos R da sessão original.
Origem da Falha
A origem do problema do CVE-2024-27322 está no fato de que isso poderia resultar na execução arbitrária de código ao deserializar dados não confiáveis, expondo os usuários a ataques à cadeia de suprimentos através de pacotes R especialmente projetados.
Um invasor interessado em explorar a vulnerabilidade poderia se beneficiar do fato de que os pacotes R utilizam o formato RDS para salvar e carregar dados, resultando na execução automática de código quando o pacote é descompactado e desserializado.
“Pacotes R são suscetíveis a esse exploit e, portanto, podem ser empregados como parte de um ataque à cadeia de suprimentos através de repositórios de pacotes”, afirmaram os pesquisadores de segurança Kasimir Schulz e Kieran Evans.
“Para um invasor assumir um pacote R, tudo o que precisa fazer é substituir o arquivo rdx por um arquivo criado maliciosamente, e quando o pacote é carregado, ele executa automaticamente o código.” A falha de segurança foi corrigida na versão 4.4.0 lançada em 24 de abril de 2024, após uma divulgação responsável.
“Um invasor pode explorar essa [falha] criando um arquivo no formato RDS que contém uma instrução promise configurando o valor para unbound_value e a expressão para conter código arbitrário”, declarou a HiddenLayer.
Devido à avaliação lazy, a expressão só será avaliada e executada quando o símbolo associado ao arquivo RDS for acessado.
Portanto, se for apenas um arquivo RDS, quando um usuário o atribui a um símbolo (variável) para trabalhar com ele, o código arbitrário será executado quando o usuário referenciar esse símbolo.
Se o objeto for compilado em um pacote R, o pacote pode ser adicionado a um repositório R, como o CRAN, e a expressão será avaliada e o código arbitrário será executado quando um usuário carregar esse pacote.
O Centro de Coordenação CERT (CERT/CC) emitiu um alerta para o CVE-2024-27322, destacando que a vulnerabilidade poderia ser explorada para realizar execução arbitrária de código no dispositivo alvo da vítima através de arquivos RDS ou rdx maliciosos.
“Um invasor pode criar arquivos .rds e .rdx mal-intencionados e usar técnicas de engenharia social para distribuir esses arquivos e executar código arbitrário no dispositivo da vítima”, afirmou o CERT/CC.
Projetos que utilizam readRDS em arquivos não confiáveis também estão expostos ao ataque.
Aplicar atualizações
O projeto R forneceu o R Core versão 4.4.0, que resolve a vulnerabilidade. O R Core versão 4.4.0 agora restringe promessas no fluxo de serialização para que agora sejam usadas para implementar avaliação lenta. Aplique a atualização o mais rápido possível.
Uso de arquivo RDS seguro ou sandbox
Proteja e use arquivos .rds, rdb e .rdx não confiáveis/de terceiros em contêineres ou em um ambiente Sandbox para evitar acesso inesperado aos recursos.
+Mais
Hackers usam aplicativos falsos de videoconferência para roubar dados de profissionais da Web3
Botnet Socks5Systemz alimenta serviço de proxy ilegal com mais de 85.000 dispositivos hackeados
Campanha de notícias falsas alimentada por IA tem como alvo o apoio ocidental às eleições na Ucrânia e nos EUA