Node.Js · Node.Js · CVE-2026-26318
**Nome do Software Vulnerável e Versões Afetadas**
systeminformation versões anteriores à 5.31.0
**Descrição**
A biblioteca systeminformation para node.js é suscetível a injeção de comandos por meio da saída não sanitizada do comando `locate` dentro da função `versions()`. Isso ocorre ao detectar a versão do PostgreSQL em sistemas Linux. O comando `locate` pesquisa um banco de dados do sistema em busca de nomes de arquivos, e, caso qualquer nome de arquivo indexado contenha metacaracteres do shell (especificamente ponto e vírgula), esses caracteres podem ser interpretados pelo shell ao serem passados para a função `exec()`. A vulnerabilidade requer que o sistema-alvo esteja executando Linux, tenha o `locate` instalado e contenha um binário do PostgreSQL no banco de dados do locate. Um atacante pode criar arquivos no sistema de arquivos que, ao serem indexados pelo `updatedb`, permitem a execução arbitrária de comandos com os privilégios do processo Node.js. O problema é acionado quando a função `versions()` é chamada, possivelmente em cenários como painéis de monitoramento, pipelines CI/CD ou ambientes containerizados. A vulnerabilidade pode ser explorada se o atacante puder criar arquivos no sistema de arquivos e o banco de dados do locate for atualizado. Ocorrem aproximadamente mais de 5.000.000 de downloads semanalmente.
**Recomendações**
Versões anteriores à 5.31.0 devem ser atualizadas para a versão 5.31.0 ou posterior. Substitua `exec()` por `execFile()` para a verificação da versão do binário do PostgreSQL. Além disso, a saída do locate deve ser validada contra um padrão de caminho seguro antes do uso.