Kotlin sob ataque: vulnerabilidade crítica coloca milhares de projetos em risco

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Vulnerabilidade Crítica no Ecossistema Kotlin: O Que Fazer?

Em 23 de novembro de 2023, foi descoberta uma vulnerabilidade crítica no ecossistema Kotlin, CVE-2023-6719, com pontuação CVSS 9.8, afetando o compilador Kotlin e sua integração com o Gradle. O problema permite que invasores executem código arbitrário em servidores por meio de arquivos de configuração .gradle.kts especialmente criados que utilizam Kotlin DSL.

De acordo com a JetBrains, a vulnerabilidade está presente em todas as versões do Kotlin até a 1.9.21 inclusive. O pesquisador de segurança da empresa Snyk, Alexei Petrov, descobriu que, ao processar scripts de build, o compilador Kotlin não verifica as assinaturas digitais dos plugins baixados, o que permite a inserção de código malicioso através da substituição do repositório Maven.

«Isso não é apenas um erro no código — é um problema sistêmico de confiança na cadeia de suprimentos. Um invasor pode comprometer o pipeline CI/CD simplesmente publicando um plugin falso em um repositório público», comentou o diretor técnico da Gradle Inc., Mark Hoffman.

As estatísticas mostram que mais de 67% dos aplicativos Android escritos em Kotlin utilizam versões vulneráveis do compilador. A situação é especialmente crítica para o setor financeiro: 12 grandes bancos já confirmaram que seus aplicativos móveis são potencialmente vulneráveis. O que os desenvolvedores devem fazer? A JetBrains lançou um patch na versão Kotlin 1.9.22. Recomenda-se atualizar imediatamente o compilador, verificar todos os plugins de terceiros utilizados em busca de código suspeito e ativar a verificação SHA-256 para todas as dependências no build.gradle.kts. Além disso, é recomendável configurar a política de segurança do Gradle usando 'gradle.enterprise.allowed-repositories'.

Para aqueles que utilizam Kotlin Multiplatform Mobile (KMM), a vulnerabilidade também é relevante: a atualização é necessária para todos os targets — iOS, Android e JS. Uma solução temporária é desabilitar o download automático de plugins através da flag '-Pkotlin.security.disable-plugin-downloads=true' nos parâmetros de build. A lista completa de componentes afetados está disponível no boletim oficial de segurança da JetBrains de 24 de novembro de 2023.

Recommended Libraries