GenieACS com segurança: CVEs, versão certa e licença AGPL
GenieACS é um bom ACS open source, mas instalar e esquecer é perigoso. Confira três pontos hoje: a CVE-2021-46704 (injeção de comando pelo ping da interface, versões 1.2.x anteriores à 1.2.8), a falha de execução remota no mesmo endpoint corrigida só na 1.2.15, de março de 2026 (use a 1.2.16 ou superior), e a CVE-2025-56015, em que a NBI na porta 7557 responde sem autenticação. E a licença é AGPL-3.0, não MIT.
O que é o GenieACS e quais portas ele abre?
GenieACS é um ACS TR-069 open source escrito em Node.js, com banco MongoDB. Ele roda como quatro serviços, cada um na sua porta padrão:
| Serviço | Porta | Quem precisa alcançar |
|---|---|---|
genieacs-cwmp | 7547 | os roteadores e ONUs dos assinantes |
genieacs-fs | 7567 | os equipamentos, para baixar firmware e arquivos |
genieacs-nbi | 7557 | só os seus sistemas internos (API) |
genieacs-ui | 3000 | só a sua equipe |
A tabela já é metade da segurança. Os equipamentos precisam do CWMP e do servidor de arquivos. A NBI e a interface web não têm motivo para ficar abertas na internet, e é exatamente nelas que estão as falhas abaixo.
O que foi a CVE-2021-46704?
Nas versões 1.2.x anteriores à 1.2.8, a API da interface web aceitava um endereço no recurso de ping e o repassava ao sistema operacional sem validação suficiente, e sem checar se quem pedia estava autenticado. Resultado: injeção de comando sem login, ou seja, quem alcançasse a interface podia executar comandos no servidor. A correção saiu na 1.2.8.
O que mudou na 1.2.15 e por que ir direto para a 1.2.16?
Em 26 de março de 2026 o projeto lançou a 1.2.15 como versão de segurança: ela corrige uma falha crítica de execução remota de código no mesmo endpoint de ping, descrita pelos mantenedores como continuação da CVE-2021-46704. Ou seja, estar na 1.2.8 ou posterior não bastava. A recomendação oficial foi atualizar imediatamente.
Três dias depois, em 29 de março, saiu a 1.2.16, que corrige uma regressão da 1.2.15 na busca de dispositivos da interface. Na prática, a versão mínima sensata hoje é a 1.2.16. A linha 1.3 (branch principal do repositório) é de desenvolvimento e não deve ir para produção sem teste próprio.
Para conferir a sua versão, veja o package.json da instalação ou o rodapé da interface. Se você usa uma imagem Docker de terceiros, confira qual versão ela empacota: imagem pronta pode estar meses atrás do projeto.
O que é a CVE-2025-56015 e como se proteger?
A CVE-2025-56015, publicada em abril de 2026 com nota CVSS 7.5, descreve acesso sem autenticação à NBI, a API da porta 7557, na versão 1.2.13. Segundo a análise publicada pela Wiz, requisições sem login conseguem ler hashes e salts de senha de usuários (/users/), a lista de arquivos (/files/) e os scripts de provisionamento (/provisions/). A mesma análise descreve uma cadeia com fuga do sandbox de scripts que chegaria a execução remota de código.
Na data em que conferimos (outubro de 2026), o advisory público do GitLab ainda não apontava versão com correção. Independentemente disso, a proteção é de arquitetura, não de versão:
- A NBI escuta só em
127.0.0.1ou na rede interna, nunca em endereço público. - Firewall bloqueando 7557 e 3000 de fora, mesmo que alguém mude a configuração do serviço.
- Se outro sistema precisa da API, ele chega por rede privada, VPN ou por um proxy reverso que exija autenticação.
Que checklist de segurança vale para qualquer GenieACS?
- Versão 1.2.16 ou superior, e alguém responsável por acompanhar o blog e o fórum do projeto.
- Interface web atrás de autenticação e lista de IPs (ou VPN). Nunca aberta para o mundo.
- Trocar o usuário administrador padrão. Há composes prontos na internet que sobem com
admin/admin. - CWMP sobre HTTPS, com usuário e senha de
ManagementServerconfigurados nos equipamentos e conferidos pelo ACS. - MongoDB sem porta pública e com backup diário testado.
- Uma instância por provedor, se você opera para terceiros. Banco compartilhado mistura dados de clientes diferentes.
- Firmware em massa sempre filtrado por fabricante, modelo e versão, em lotes pequenos primeiro. O risco aqui não é invasão, é transformar ONU em tijolo.
O que a licença AGPL-3.0 exige de quem usa o GenieACS?
O GenieACS é distribuído sob a AGPL-3.0. Há documentação na internet que diz MIT, e está errada. Em linhas gerais, e sem ser parecer jurídico:
- Usar o GenieACS na sua própria rede, sem modificar o código, não gera obrigação de publicar nada.
- Se você modificar o código e outras pessoas usarem essa versão pela rede (por exemplo, se você oferece o ACS a outros provedores), precisa oferecer a elas o código-fonte da versão modificada.
- Provisions, presets e configurações são dados que você carrega no ACS, não alterações do programa; no entendimento comum, não entram nessa obrigação. Se o seu caso for diferente disso, consulte um advogado.
Quando vale um ACS gerenciado em vez de manter o seu?
Manter o próprio GenieACS faz sentido quando há alguém na equipe com tempo e conhecimento de Linux, Node.js e MongoDB para atualizar, monitorar, fazer backup e homologar cada modelo de equipamento. A licença é gratuita; o custo é o tempo dessa pessoa e o risco quando ela está de férias.
Um ACS gerenciado vale quando ninguém na equipe vai acompanhar as notas de versão, como as de março de 2026, no dia em que saem. É o caso do NuvoACS: GenieACS 1.2.16 ou superior, instância dedicada por provedor na NuvoCloud, NBI nunca exposta, interface com login e acesso restrito, backup diário e o Copiloto de IA por cima. Planos a partir de R$ 247/mês (até 500 equipamentos), com implantação grátis no lançamento. Para comparar os caminhos com calma, veja ACS do IXC, ACS próprio ou ACS gerenciado.
Perguntas frequentes
Qual versão do GenieACS é segura hoje?
A NBI do GenieACS pode ficar exposta na internet?
O GenieACS é MIT ou AGPL?
Quais portas do GenieACS os equipamentos precisam alcançar?
Leia também
ACS do IXC, ACS próprio ou ACS gerenciado: como escolher
Três caminhos para ter um ACS TR-069: o do ERP, um GenieACS próprio ou um ACS gerenciado. As perguntas que decidem, uma tabela comparativa e como migrar sem visita.
7 min de leitura FundamentosO que é ACS TR-069 e por que o provedor precisa de um
ACS é o servidor que gerencia à distância roteadores e ONUs dos assinantes pelo protocolo TR-069 (CWMP). Veja como funciona, o que dá para fazer e o que ele não faz.
7 min de leitura RedeACS atrás de CGNAT: funciona?
Funciona: no TR-069 quem abre a conexão é o roteador. O CGNAT só atrapalha o Connection Request, que o STUN resolve quando o firmware suporta. A ressalva honesta.
7 min de leitura