# CVE-2025-11953 - Injeção de Comando OS no React Native Metro Dev Server
> [!critical] CVSS 9.8 - CISA KEV - Supply Chain de Desenvolvimento
> Injeção de comando OS sem autenticação no servidor Metro do React Native CLI afeta máquinas de desenvolvedores. Explorada ativamente desde dezembro de 2025 com deploy do malware Rust "Metro4Shell". Atinge toda a cadeia de desenvolvimento mobile.
## Visão Geral
A CVE-2025-11953 é uma vulnerabilidade crítica de injeção de comando no sistema operacional que afeta o Metro Dev Server, o servidor de desenvolvimento local utilizado pelo React Native CLI para bundling e hot-reload de aplicações mobile. A falha permite que qualquer atacante com acesso à rede local (ou à internet, caso o Metro esteja exposto) envie requisições não autenticadas que resultam na execução de comandos arbitrários na máquina do desenvolvedor.
O Metro Dev Server escuta por padrão na porta 8081 sem qualquer mecanismo de autenticação. A vulnerabilidade explora válidação insuficiente de parâmetros de URL ou headers específicos que são passados sem sanitização para funções de execução de shell. Versões afetadas vão de 4.8.0 até 20.0.0-alpha.2, cobrindo anos de releases do React Native CLI.
A gravidade desta vulnerabilidade para o ecossistema de desenvolvimento é excepcional. Diferente de CVEs que afetam servidores de produção, esta compromete diretamente as **estações de trabalho de desenvolvedores**: ambientes ricos em segredos (tokens de API, chaves privadas, acesso a repositórios Git, credenciais de cloud), código proprietário e acesso privilegiado a pipelines CI/CD. A exploração ativa desde dezembro de 2025 — com o malware Rust "Metro4Shell" sendo deployado automaticamente após exploração — confirma que atores maliciosos estão ativamente visando desenvolvedores React Native.
## Produtos Afetados
| Produto | Versões Vulneráveis | Versão Corrigida |
|---------|---------------------|-----------------|
| @react-native-community/cli | 4.8.0 a 20.0.0-alpha.2 | 20.0.0 (estável) |
| Metro bundler (integrado) | Versões correspondentes ao CLI | Atualizar via CLI |
| React Native (projetos com CLI) | Todos os projetos nas versões afetadas | Atualizar CLI para 20.0.0+ |
**Nota:** O risco aumenta significativamente quando o Metro está exposto além do loopback (0.0.0.0 em vez de 127.0.0.1), prática comum em ambientes de desenvolvimento com dispositivos físicos na rede local.
## Detalhes Técnicos
O Metro Dev Server processa parâmetros de requisições HTTP que são concatenados em chamadas de shell sem escape adequado. A injeção ocorre em endpoints específicos do servidor de desenvolvimento que invocam ferramentas nativas do sistema (adb, bundler tools, etc.).
**Vetor de ataque:**
- **Rede local (mais comum):** atacante na mesma rede Wi-Fi do desenvolvedor (coffeeshop, coworking, rede corporativa) faz requisição direta ao Metro na porta 8081
- **Internet (se exposto):** Metro configurado para escutar em 0.0.0.0 sem firewall
- **Comprometimento de dependência:** pacote npm malicioso que faz requisição interna ao Metro em localhost
**Malware Metro4Shell:**
- Escrito em Rust para baixo overhead e evasão de detecção
- Persiste via [[t1053-005-scheduled-task|tarefa agendada]] ou serviço de inicialização
- Exfiltra tokens de ambiente, chaves SSH, credenciais de cloud providers (AWS, GCP, Azure)
- Instala backdoor para acesso persistente à estação do desenvolvedor
- Potencial propagação lateral via credenciais roubadas para repositórios e ambientes de produção
## Mitigação
**Ação imediata:**
- Atualizar `@react-native-community/cli` para versão 20.0.0 ou superior: `npm install -g @react-native-community/cli@latest`
- Verificar se o Metro está exposto além do loopback: `lsof -i :8081`
**Configuração segura do ambiente de desenvolvimento:**
- Nunca executar Metro com `--host 0.0.0.0` em redes não confiáveis
- Usar firewall local para bloquear acesso externo à porta 8081
- Restringir acesso de rede ao Metro via configuração do host (`metro.config.js`)
**Proteção do ambiente de desenvolvimento:**
- Implementar [[m1013-application-developer-guidance|diretrizes de segurança para desenvolvedores]]
- Auditar variáveis de ambiente e secrets em máquinas de desenvolvimento
- Usar gerenciadores de secrets (1Password, HashiCorp Vault) em vez de arquivos `.env`
- Habilitar antivírus/EDR em estações de trabalho de desenvolvedores ([[m1049-antivirusantimalware|M1049]])
**Detecção de comprometimento:**
- Verificar processos Rust desconhecidos em execução na máquina
- Auditar tarefas agendadas e itens de inicialização recentemente criados
- Verificar exfiltração de segredos (AWS CloudTrail, GCP audit logs)
- Checar por acesso não autorizado a repositórios Git
## Contexto LATAM
> [!latam] Impacto no Brasil e América Latina
> O React Native é a principal tecnologia de desenvolvimento mobile multiplataforma no Brasil, amplamente adotado por fintechs (Nubank, PicPay, Inter), e-commerces, startups e agências de desenvolvimento. A quantidade de desenvolvedores React Native no Brasil — estimada em dezenas de milhares — cria uma superfície de ataque massiva. Startups e agências de desenvolvimento frequentemente operam com práticas de segurança menos maduras, tornando desenvolvedores brasileiros alvos potenciais de alto valor para roubo de credenciais de cloud e código proprietário. O ecossistema de fintechs brasileiro, que processa bilhões em transações, depende parcialmente de apps React Native — uma cadeia de desenvolvimento comprometida pode resultar em backdoors em aplicativos financeiros usados por milhões de brasileiros.
## Referências
- [NVD - CVE-2025-11953](https://nvd.nist.gov/vuln/detail/CVE-2025-11953)
- [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- [React Native CLI Security Advisory](https://github.com/react-native-community/cli/security/advisories)
## Notas Relacionadas
- [[t1190-exploit-public-facing-application|T1190 - Exploit Public-Facing Application]]
- [[t1195-001-compromise-software-dependencies-and-development-tools|T1195.001 - Comprometimento de Ferramentas de Desenvolvimento]]
- [[t1059-004-unix-shell|T1059.004 - Unix Shell]] - execução de comandos após injeção
- [[t1053-005-scheduled-task|T1053.005 - Scheduled Task/Job]] - persistência do Metro4Shell
- [[m1013-application-developer-guidance|M1013 - Application Developer Guidance]]
- [[m1049-antivirusantimalware|M1049 - Antivirus/Antimalware]]
- [[technology|Setor - Tecnologia]]
- [[financial|Setor - Financeiro]]