Falha Crítica no React Native CLI Coloca Desenvolvedores em Risco
Desenvolvedores que utilizam React Native para criar aplicações mobile precisam parar o que estão fazendo e verificar suas dependências. Uma falha de segurança de severidade crítica, com uma nota quase perfeita de 9.8 em 10, foi identificada no pacote @react-native-community/cli. A vulnerabilidade, rastreada como CVE-2025-11953, permite que um atacante não autenticado na mesma rede execute comandos maliciosos diretamente na máquina do desenvolvedor. A fonte do problema? O servidor de desenvolvimento Metro, que, por padrão, abre as portas para esse tipo de ataque. A boa notícia é que uma correção foi lançada no início de outubro de 2025, mas a corrida contra o tempo já começou para milhões de usuários.
A Anatomia de um Desastre Anunciado
Para entender a falha, é preciso dissecar a lógica de funcionamento do ambiente de desenvolvimento do React Native. Segundo o relatório de Or Peles, pesquisador sênior de segurança da JFrog, o problema reside em duas decisões de design que, combinadas, criam a brecha perfeita. Primeiramente, o servidor de desenvolvimento Metro, usado para compilar código JavaScript, se conecta a interfaces de rede externas por padrão, em vez de se limitar ao seguro `localhost`. Isso significa que qualquer dispositivo na mesma rede pode, em teoria, se comunicar com o servidor.
A segunda peça do quebra-cabeça é um endpoint específico chamado /open-url. Este endpoint foi projetado para receber uma requisição do tipo POST contendo um valor fornecido pelo usuário. O problema é que esse valor é passado diretamente para a função `open()` do pacote NPM `open`, uma função que, se não for tratada com o devido cuidado, pode executar comandos do sistema operacional. O resultado é uma clássica vulnerabilidade de injeção de comandos.
Nas palavras de Or Peles, compartilhadas com o The Hacker News: "A vulnerabilidade permite que atacantes remotos não autenticados acionem facilmente a execução arbitrária de comandos do sistema operacional na máquina que está executando o servidor de desenvolvimento do react-native-community/cli, representando um risco significativo para os desenvolvedores." A lógica é implacável: se o servidor escuta externamente e se um endpoint executa comandos sem validação, então a porta para um ataque está escancarada.
Condição de Risco: True ou False?
A pergunta que todo desenvolvedor deve se fazer é: estou vulnerável? A resposta segue uma estrutura condicional bem definida. Se você utiliza o pacote @react-native-community/cli (que registra entre 1.5 a 2 milhões de downloads semanais) e depende do servidor Metro para o desenvolvimento, então a resposta é true. A vulnerabilidade afeta especificamente as versões do pacote `@react-native-community/cli-server-api` entre 4.8.0 e 20.0.0-alpha.2.
O impacto varia conforme o sistema operacional. Em máquinas com Windows, um atacante pode executar comandos de shell arbitrários com argumentos totalmente controlados, o que representa o pior cenário. Em Linux e macOS, a exploração permite a execução de binários arbitrários, mas com controle limitado sobre os parâmetros. Independentemente da plataforma, o risco é inaceitável.
Por outro lado, se você é um desenvolvedor que utiliza React Native com um framework que não depende do Metro como servidor de desenvolvimento, então a resposta é false. Neste caso, você não está impactado pela falha e pode respirar um pouco mais aliviado. A verificação do seu ambiente de trabalho é, portanto, o primeiro passo para determinar seu nível de exposição.
A Solução Lógica: Atualizar ou Ser Atualizado
A equipe de manutenção do pacote, que é supervisionada pela Meta, agiu para corrigir a brecha. A solução foi lançada na versão 20.0.0 do pacote `@react-native-community/cli-server-api`. A recomendação é direta e sem ambiguidades: atualize a dependência imediatamente. Deixar de fazê-lo é manter uma vulnerabilidade de fácil exploração ativa em seu ambiente de desenvolvimento.
Or Peles, da JFrog, reforça a gravidade da situação: "Esta vulnerabilidade de dia zero é particularmente perigosa devido à sua facilidade de exploração, falta de requisitos de autenticação e ampla superfície de ataque." Ele também aponta para um problema maior na indústria de software: "Ela também expõe os riscos críticos ocultos no código de terceiros."
Em última análise, este episódio serve como um forte lembrete sobre a segurança da cadeia de suprimentos de software. A verdade binária é que uma dependência extremamente popular, com milhões de downloads e mantida por uma gigante da tecnologia, continha uma falha que transformava a máquina de um desenvolvedor em um alvo em potencial. A lição é clara: confiança não substitui a verificação contínua e a atualização constante. Em um ecossistema tão interconectado, a segurança de um é a segurança de todos.
{{ comment.name }}
{{ comment.comment }}