Dependências: pacotes vulneráveis ou antigos nos seus projetos
A seção Dependências verifica todos os seus projetos de uma vez: lê os lockfiles deles, sem mexer em nada, e cruza com o OSV.dev, o catálogo de vulnerabilidades exploradas da CISA e o endoflife.date. Ela diz quais pacotes têm falhas de segurança, quais são maliciosos, obsoletos ou muito antigos, e quais runtimes perderam suporte, com o comando para atualizar.
Se você programa, o seu Mac está cheio de projetos com centenas de dependências cada um. Algumas têm vulnerabilidades conhecidas, outras foram abandonadas há anos, e o runtime de algum projeto antigo já não recebe correções. Ninguém verifica um por um. O Pruneo verifica todos de uma vez.
O que ele verifica
Para cada projeto, o Pruneo lê o lockfile e avisa:
- Vulnerabilidades conhecidas, segundo o OSV.dev, a base aberta do Google que reúne os alertas do GitHub, PyPI, RustSec, Go e outros.
- Vulnerabilidades exploradas, segundo o catálogo KEV da CISA: as que já são usadas em ataques reais.
- Pacotes maliciosos, publicados para roubar dados ou credenciais.
- Pacotes obsoletos ou retirados pelos autores.
- Pacotes muito antigos, várias versões atrás da atual.
- Runtimes sem suporte, como uma versão do Node ou do Python que parou de receber correções, segundo o endoflife.date.
Para cada problema, ele mostra o comando para atualizar. Ele nunca mexe no projeto.
Quais arquivos ele lê
| Ecossistema | Arquivos |
|---|---|
| JavaScript | package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock, bun.lock |
| Rust | Cargo.lock |
| Go | go.mod |
| Python | poetry.lock, uv.lock, Pipfile.lock, requirements.txt |
| Java e Kotlin | pom.xml, gradle.lockfile, build.gradle, build.gradle.kts |
| Ruby | Gemfile.lock |
| PHP | composer.lock |
| Dart e Flutter | pubspec.lock |
| Swift | Package.resolved |
Privacidade: o cruzamento é local
Na primeira vez, o Pruneo baixa para o seu Mac as bases públicas do OSV.dev dos ecossistemas que você usa, e atualiza no máximo uma vez por dia. O cruzamento com os seus projetos acontece no seu Mac.
A consulta aos registros oficiais (npm, crates.io, PyPI…), que serve para saber se um pacote está obsoleto ou muito antigo, é opcional. Se você ativar, ela envia só o nome e a versão de cada pacote.
Como usar
- No app: Profissional › Dependências. Na primeira vez ele pede para você ativar. Você pode desativar ou apagar o que foi baixado em Ajustes.
- No terminal:
pruneo deps.
Perguntas frequentes
Quais linguagens e gerenciadores de pacotes ele suporta?
npm, pnpm, Yarn e Bun; Cargo (Rust); Go; Poetry, uv, Pipenv e requirements.txt (Python); Maven e Gradle (Java e Kotlin); Bundler (Ruby); Composer (PHP); Pub (Dart e Flutter) e Swift Package Manager.
Ele envia o meu código para algum servidor?
Não. O Pruneo baixa as bases públicas do OSV.dev para o seu Mac e faz o cruzamento nele. Só se você ativar a consulta aos registros (npm, crates.io, PyPI…) são enviados o nome e a versão de cada pacote, nunca o seu código.
O Pruneo atualiza as minhas dependências?
Não. Ele nunca mexe nos seus projetos: mostra o problema e o comando para atualizar, e quem roda é você.
Vem ativado?
Não. É opcional: você ativa na seção Dependências ou em Ajustes, onde também pode desativar ou apagar o que foi baixado.
Dá para usar pelo terminal?
Sim, com pruneo deps.