Introdução: Por que o CVE-2025-11953 é um divisor de águas para a segurança do React Native
Se você é um React Native ou um profissional de segurança de TI que trabalha com aplicativos móveis, você precisa estar ciente de CVE-2025-11953-uma vulnerabilidade crítica que afeta o núcleo Servidor de desenvolvimento metropolitano usado em React Native projetos. Essa vulnerabilidade expõe o ambiente de desenvolvimento a execução remota de código (RCE) ataques, representando riscos significativos, especialmente para aqueles que não configuram seus servidores de desenvolvimento de forma segura.
Em essência, CVE-2025-11953 revela um duplo golpe: falhas de configuração padrão e vulnerabilidades de injeção de comando. O Servidor de desenvolvimento metropolitanoessencial para o empacotamento e a depuração de aplicativos React Native, por padrão se vincula a 0.0.0.0permitindo o acesso externo ao servidor. Além disso, determinados pontos de extremidade expostos no servidor aceitam entrada de usuário não filtrada, permitindo que os invasores injetem comandos do sistema operacional, levando a RCE e completa aquisição de host.
Como o React Native é uma estrutura líder para o desenvolvimento de aplicativos móveis entre plataformas, os desenvolvedores geralmente subestimam os riscos apresentados por essa vulnerabilidade. Neste artigo, detalharemos os principais problemas da CVE-2025-11953A seguir, abordaremos as implicações técnicas e forneceremos etapas práticas para reduzir o risco. Também abordaremos os aspectos práticos da proteção de seu ambiente de desenvolvimento e da manutenção de fluxos de trabalho React Native seguros.
O que é o CVE-2025-11953? Uma olhada mais de perto
De acordo com a equipe de pesquisa de segurança da JFrog Ltd. Security Research, a vulnerabilidade afeta o pacote NPM amplamente utilizado @react-native-community/clique aciona o servidor Metro para o React Native. A falha permite que invasores não autenticados enviem uma solicitação POST criada para um endpoint exposto (como o /open-url) e executar comandos arbitrários do sistema operacional no host. JFrog+2nvd.nist.gov+2 Principais fatores:
- Pontuação CVSS 3.1: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) nvd.nist.gov
- Versões afetadas: @react-native-community/cli-server-api Da versão 4.8.0 até a 20.0.0-alpha.2. Correção disponível na versão 20.0.0. Notícias do Hacker+1
- Problema subjacente: O servidor Metro se vincula a 0.0.0.0 por padrão e passa a entrada do usuário através de
open()(do pacote npm aberto) em um caminho de execução de comando do sistema operacional. CSO Online+1
Por que é importante: Diferentemente das falhas típicas do dev-server limitadas ao localhost, este fornece um vetor de rede remota. As máquinas de desenvolvimento e os agentes de CI que executam o Metro estão em risco. eSecurity Planet
| Item | Detalhes |
|---|---|
| ID DO CVE | CVE-2025-11953 |
| Tipo de vulnerabilidade | Injeção de comando do sistema operacional (CWE-78) |
| Componente afetado | Servidor de desenvolvimento de metrô do React Native CLI |
| Versões afetadas | React Native ≤ 0.74.1 / Metro ≤ 0.81.0 (e CLI-server-api 4.8.0-20.0.0-alpha.2) |
| Ponto final do acionador | Pontos de extremidade HTTP expostos (por exemplo, /open-url, /symbolicate, /debugger-ui) |
| Gravidade (CVSS) | 9,8 / AV:N / AC:L / PR:N / UI:N |
| Risco primário | Execução de código remoto → comprometimento da máquina do desenvolvedor → movimento lateral da rede interna |

Veja a seguir uma análise mais detalhada dos riscos técnicos específicos que tornam essa falha particularmente perigosa:
Exposição padrão do Metro Server
Quando CLI do React Native inicia o Servidor de desenvolvimento metropolitanoo padrão é vincular-se a 0.0.0.0ou seja, o servidor está escutando em todas as interfaces de rede disponíveis, tanto internas quanto externas. Esse é um grande risco de segurança para qualquer desenvolvedor que hospede o servidor em uma máquina com acesso à internet.
Aqui está um exemplo do código que configura essa associação padrão:
javascript:
// Configuração padrão do servidor Metro (react-native/node_modules/metro/src/server/index.js)
const config = {
host: '0.0.0.0', // vincula-se a todas as interfaces
port: 8081, // porta padrão
enableCORS: true // solicitações de origem cruzada ativadas
};
O que deve acontecer é que o servidor Metro deve se vincular apenas a 127.0.0.1 (localhost), garantindo que somente a máquina de desenvolvimento local possa acessá-lo. No entanto, essa configuração permite que acesso remotocolocando o servidor em risco.
Vulnerabilidade de injeção de comando
A segunda parte da vulnerabilidade envolve injeção de comandoonde determinados pontos de extremidade, como /simbolizar e /debugger-uiO sistema de segurança de dados da Microsoft, Inc., passa a entrada do usuário diretamente para os comandos do sistema. Essa falta de validação de entrada permite que os invasores injetem comandos maliciosos e executem códigos arbitrários.
Por exemplo, uma solicitação legítima para /simbolizar pode ter a seguinte aparência:
POST /symbolicate HTTP/1.1
Host: [target-ip]:8081
Content-Type: application/json
{
"logPath": "/var/log/react-native/crash.log"
}
No entanto, um invasor pode injetar comandos adicionais, como este:
POST /symbolicate HTTP/1.1
Host: [target-ip]:8081
Content-Type: application/json
{
"logPath": "/var/log/react-native/crash.log && whoami"
}
Nesse caso, o sistema executa o comando cat /var/log/react-native/crash.log && whoamipermitindo que o invasor execute comandos arbitrários no servidor, como whoami para revelar o usuário atual.
Quais versões do React Native são afetadas pelo CVE-2025-11953?
Os impactos da vulnerabilidade Versões do React Native ≤ 0.74.1 e Versões do metrô ≤ 0.81.0. Se você estiver executando essas versões ou qualquer outra mais antiga, é fundamental fazer a atualização imediatamente para evitar a exposição do seu ambiente de desenvolvimento à execução remota de código.
Para verificar sua versão do React Native, você pode executar:
npm list @react-native-community/cli-server-api
Se a versão estiver desatualizada, atualize para uma versão segura executando:
npm install react-native@latest
Se a atualização do React Native não for viável imediatamente, você pode Atualização do metrô de forma independente, correndo:
npm install metro@latest --save-dev
Estratégias práticas de mitigação para o CVE-2025-11953
Correção imediata: vincular o Metro ao host local
Se não for possível atualizar imediatamente suas dependências, você poderá atenuar temporariamente o risco vinculando o Servidor metropolitano para 127.0.0.1. Isso impede que invasores externos alcancem o servidor, mesmo que ele esteja exposto.
Para vincular o Metro ao localhost, execute:
npx react-native start --host 127.0.0.1
Para tornar isso permanente, adicione o seguinte ao seu package.json:
"scripts": {
"start": "react-native start --host 127.0.0.1",
"android": "react-native run-android",
"ios": "react-native run-ios"
}
Segurança de rede: Use Firewalls
Outra proteção imediata é a configuração de firewalls para bloquear qualquer acesso externo à porta Metro padrão (8081). Por exemplo, no Linux, use:
iptables -A INPUT -p tcp --dport 8081 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j DROP
Para usuários do Windows, configure o firewall para limitar a porta 8081 a localhost.
Penligent: Automatizando o teste de segurança para projetos React Native
Como desenvolvedor do React Native, ficar à frente de vulnerabilidades como CVE-2025-11953 pode ser um desafio. É por isso que Penligenteuma plataforma de testes de penetração com tecnologia de IA, entra em ação. Penligente automatiza a detecção de vulnerabilidades como CVE-2025-11953O React Native é uma ferramenta de análise de código que analisa sua base de código e configurações do React Native para identificar possíveis riscos em tempo real.
Com PenligenteVocê pode integrar o testes de penetração em seu pipeline de desenvolvimento, garantindo que seus projetos estejam seguros antes da implementação. Essa abordagem proativa de segurança ajuda a evitar vulnerabilidades dispendiosas e protege os usuários contra ataques mal-intencionados.
Conclusão: Protegendo projetos React Native contra o CVE-2025-11953
CVE-2025-11953 expôs falhas críticas de segurança no Servidor de desenvolvimento metropolitano de React Nativetornando mais fácil para os invasores assumirem o controle de um ambiente de desenvolvimento. Ao compreender os falhas de configuração e riscos de injeção de comandoSe o desenvolvedor não estiver preparado para o que está acontecendo, os desenvolvedores podem tomar medidas para proteger seus projetos.
Para mitigar os riscos de CVE-2025-11953os desenvolvedores devem:
- Atualize para a versão mais recente React Native e Metrô versões.
- Implementar correções temporárias, como vincular o servidor a localhost.
- Configure os firewalls para restringir o acesso à porta padrão do Metro.
Além disso, o uso de ferramentas como Penligente podem automatizar os testes de segurança, garantindo que seu ambiente de desenvolvimento permaneça seguro. Ao adotar essas estratégias, você pode proteger seus projetos React Native contra a ameaça de execução remota de código e garantir que seus fluxos de trabalho de desenvolvimento permaneçam seguros.
Para obter mais práticas recomendadas de segurança, consulte a seção Os dez melhores da OWASP e Avisos de segurança do npm para atualizações contínuas.

