🔍 GitHub CVE Scanner - Guia de Uso
Script para escanear repositórios GitHub em busca de vulnerabilidades conhecidas em projetos React e Next.js.
📋 Vulnerabilidades Detectadas
O scanner verifica as seguintes CVEs:
🚀 Como Usar
Pré-requisitos
- Um navegador web moderno (Chrome, Firefox, Edge, etc.)
- Acesso ao GitHub (opcional: Personal Access Token para repositórios privados)
Passo a Passo
1. Abrir o Console do Navegador
- Acesse qualquer página do GitHub (ex:
https://github.com)
- Abra o DevTools:
- Chrome/Edge:
F12 ou Ctrl+Shift+I (Windows) / Cmd+Option+I (Mac)
- Firefox:
F12 ou Ctrl+Shift+K (Windows) / Cmd+Option+K (Mac)
- Vá para a aba Console
2. Copiar e Executar o Script
- Abra o arquivo
main.js
- Copie todo o conteúdo do arquivo
- Cole no console do navegador
- Pressione
Enter para executar
3. Configurar o Scan
O script fará uma série de perguntas interativas:
3.1. Autenticação (Primeira Pergunta)
🔐 Scan private repos too?
OK = Enter PAT
Cancel = Public only
- OK: Você será solicitado a inserir um Personal Access Token (PAT) do GitHub
- Permite escanear repositórios privados
- Necessário para acessar organizações
- Cancel: Apenas repositórios públicos serão escaneados
Como criar um PAT:
- Acesse:
https://github.com/settings/tokens
- Clique em "Generate new token" → "Generate new token (classic)"
- Dê um nome descritivo
- Selecione o escopo
repo (acesso completo a repositórios)
- Clique em "Generate token"
- Copie o token imediatamente (não será mostrado novamente)
3.2. Escopo do Scan (Se autenticado)
🔍 What do you want to scan?
OK = Organizations
Cancel = User Profile
- OK: Escanear organizações
- Cancel: Escanear apenas o perfil do usuário
3.3. Seleção de Organizações (Se escolheu Organizations)
🏢 Scan all organizations?
OK = All organizations
Cancel = Single organization
Opção A - Todas as organizações (OK):
- O script buscará automaticamente todas as organizações do usuário autenticado
- Escaneará todos os repositórios de todas as organizações
Opção B - Uma organização específica (Cancel):
3.4. Perfil do Usuário (Se não autenticado ou escolheu Profile)
- Se você estiver em uma página de perfil do GitHub, o script detectará automaticamente
- Caso contrário, será solicitado:
Enter GitHub username:
📊 Funcionalidades
✨ Verificação por Branches
O script verifica todas as branches de cada repositório, não apenas a branch padrão. Isso garante que vulnerabilidades em branches de desenvolvimento, staging ou outras branches ativas sejam detectadas.
🏢 Suporte a Organizações
- Escaneia repositórios de organizações do GitHub
- Opção de escanear todas as organizações ou uma específica
- Suporta inserção de URL ou nome da organização
🔒 Acesso a Repositórios Privados
Com um Personal Access Token válido, o script pode:
- Acessar repositórios privados
- Escanear organizações privadas
- Verificar branches de repositórios privados
📈 Resultados
Após a execução, o script exibirá:
Tabela de Resultados
Uma tabela no console mostrando:
- Repo: Nome do repositório
- Branch: Nome da branch verificada
- Next: Versão do Next.js (se presente)
- React: Versão do React (se presente)
- ReactDOM: Versão do react-dom (se presente)
- RSCWebpack: Versão do react-server-dom-webpack (se presente)
- RSCParcel: Versão do react-server-dom-parcel (se presente)
- RSCTurbopack: Versão do react-server-dom-turbopack (se presente)
- Status: Status da vulnerabilidade
✅ Safe: Sem vulnerabilidades detectadas
⚠️ CVE-XXXX-XXXXX: Vulnerabilidade encontrada
Resumo
📊 Summary:
Total repos: 15
Branches scanned: 23
With package.json: 20
Skipped: 3 (no package.json)
⚠️ 5 vulnerable repo(s) found!
ou
✅ No vulnerabilities found!
⚙️ Configurações Técnicas
- Delay entre requisições API: 200ms (para evitar rate limiting)
- Delay entre scans: 30ms
- Resultados por página: 100 itens
- Suporte a repositórios privados: Sim (com PAT)
- Verificação de branches: Todas as branches de cada repositório
🔧 Solução de Problemas
Erro: "Token invalid"
- Verifique se o token foi copiado corretamente
- Certifique-se de que o token tem o escopo
repo
- Verifique se o token não expirou
Erro: "No repositories found"
- Verifique se o usuário/organização existe
- Se escaneando organizações, verifique se você tem acesso
- Verifique se há repositórios no perfil/organização
Erro: "No organizations found"
- Verifique se você está autenticado com um token válido
- Certifique-se de que você faz parte de organizações
- O token precisa ter permissões para acessar organizações
Scan muito lento
- O script faz delays intencionais para evitar rate limiting
- Repositórios com muitas branches levarão mais tempo
- Organizações com muitos repositórios levarão mais tempo
📝 Notas Importantes
- Rate Limiting: O script respeita os limites da API do GitHub com delays automáticos
- Privacidade: O token é usado apenas localmente no navegador, não é enviado para servidores externos
- Precisão: O scanner verifica apenas o
package.json na raiz do repositório
- Branches: Todas as branches são verificadas, mas apenas aquelas com
package.json são reportadas
- Versões: O scanner detecta versões vulneráveis baseado nas definições de CVE
🛡️ Segurança
- O script roda completamente no navegador (client-side)
- Nenhum dado é enviado para servidores externos
- O Personal Access Token é usado apenas para requisições à API do GitHub
- Recomenda-se usar tokens com escopos mínimos necessários
📄 Licença
MIT License
🔄 Versão
3.0.0
Desenvolvido para detectar vulnerabilidades de segurança em projetos React e Next.js