🔍 GitHub CVE Scanner - Benutzerhandbuch
Skript zum Scannen von GitHub-Repositories nach bekannten Schwachstellen in React- und Next.js-Projekten.
📋 Erkannte Schwachstellen
Der Scanner überprüft die folgenden CVEs:
🚀 Verwendung
Voraussetzungen
- Ein moderner Webbrowser (Chrome, Firefox, Edge, etc.)
- Zugriff auf GitHub (optional: Personal Access Token für private Repositories)
Schritt-für-Schritt-Anleitung
1. Browserkonsole öffnen
- Rufen Sie eine beliebige GitHub-Seite auf (z. B.
https://github.com)
- Öffnen Sie die DevTools:
- Chrome/Edge:
F12 oder Ctrl+Shift+I (Windows) / Cmd+Option+I (Mac)
- Firefox:
F12 oder Ctrl+Shift+K (Windows) / Cmd+Option+K (Mac)
- Gehen Sie zum Tab Konsole
2. Skript kopieren und ausführen
- Öffnen Sie die Datei
main.js
- Kopieren Sie den gesamten Inhalt der Datei
- Fügen Sie ihn in die Browserkonsole ein
- Drücken Sie
Enter zur Ausführung
3. Scan konfigurieren
Das Skript stellt eine Reihe interaktiver Fragen:
3.1. Authentifizierung (Erste Frage)
🔐 Private Repos ebenfalls scannen?
OK = PAT eingeben
Abbrechen = Nur öffentliche
- OK: Sie werden aufgefordert, einen Personal Access Token (PAT) von GitHub einzugeben
- Ermöglicht das Scannen privater Repositories
- Erforderlich für den Zugriff auf Organisationen
- Abbrechen: Es werden nur öffentliche Repositories gescannt
So erstellen Sie einen PAT:
- Rufen Sie auf:
https://github.com/settings/tokens
- Klicken Sie auf "Generate new token" → "Generate new token (classic)"
- Geben Sie einen beschreibenden Namen ein
- Wählen Sie den Bereich
repo (vollständiger Repository-Zugriff)
- Klicken Sie auf "Generate token"
- Kopieren Sie den Token sofort (er wird nicht erneut angezeigt)
3.2. Scan-Bereich (Wenn authentifiziert)
🔍 Was soll gescannt werden?
OK = Organisationen
Abbrechen = Benutzerprofil
- OK: Organisationen scannen
- Abbrechen: Nur das Benutzerprofil scannen
3.3. Auswahl der Organisationen (Wenn Organisationen gewählt)
🏢 Alle Organisationen scannen?
OK = Alle Organisationen
Abbrechen = Einzelne Organisation
Option A - Alle Organisationen (OK):
- Das Skript sucht automatisch alle Organisationen des authentifizierten Benutzers
- Scannt alle Repositories aller Organisationen
Option B - Eine bestimmte Organisation (Abbrechen):
3.4. Benutzerprofil (Wenn nicht authentifiziert oder Profil gewählt)
📊 Funktionen
✨ Überprüfung aller Branches
Das Skript überprüft alle Branches jedes Repositories, nicht nur den Standard-Branch. Dadurch wird sichergestellt, dass Schwachstellen in Entwicklungs-, Staging- oder anderen aktiven Branches erkannt werden.
🏢 Unterstützung für Organisationen
- Scannt Repositories von GitHub-Organisationen
- Option zum Scannen aller Organisationen oder einer bestimmten
- Unterstützt Eingabe von URL oder Organisationsnamen
🔒 Zugriff auf private Repositories
Mit einem gültigen Personal Access Token kann das Skript:
- Auf private Repositories zugreifen
- Private Organisationen scannen
- Branches privater Repositories überprüfen
📈 Ergebnisse
Nach der Ausführung zeigt das Skript Folgendes an:
Ergebnistabelle
Eine Tabelle in der Konsole mit folgenden Spalten:
- Repo: Name des Repositories
- Branch: Name des überprüften Branches
- Next: Next.js-Version (falls vorhanden)
- React: React-Version (falls vorhanden)
- ReactDOM: react-dom-Version (falls vorhanden)
- RSCWebpack: react-server-dom-webpack-Version (falls vorhanden)
- RSCParcel: react-server-dom-parcel-Version (falls vorhanden)
- RSCTurbopack: react-server-dom-turbopack-Version (falls vorhanden)
- Status: Schwachstellenstatus
✅ Safe: Keine Schwachstellen erkannt
⚠️ CVE-XXXX-XXXXX: Schwachstelle gefunden
Zusammenfassung
📊 Zusammenfassung:
Repositories gesamt: 15
Gescannte Branches: 23
Mit package.json: 20
Übersprungen: 3 (kein package.json)
⚠️ 5 verwundbare(s) Repository(s) gefunden!
oder
✅ Keine Schwachstellen gefunden!
⚙️ Technische Einstellungen
- Verzögerung zwischen API-Anfragen: 200 ms (zur Vermeidung von Rate Limiting)
- Verzögerung zwischen Scans: 30 ms
- Ergebnisse pro Seite: 100 Elemente
- Unterstützung privater Repositories: Ja (mit PAT)
- Branch-Überprüfung: Alle Branches jedes Repositories
🔧 Fehlerbehebung
Fehler: "Token invalid"
- Überprüfen Sie, ob der Token korrekt kopiert wurde
- Stellen Sie sicher, dass der Token den Bereich
repo hat
- Prüfen Sie, ob der Token abgelaufen ist
Fehler: "No repositories found"
- Überprüfen Sie, ob der Benutzer/die Organisation existiert
- Falls Organisationen gescannt werden, stellen Sie sicher, dass Sie Zugriff haben
- Prüfen Sie, ob es Repositories im Profil/in der Organisation gibt
Fehler: "No organizations found"
- Überprüfen Sie, ob Sie mit einem gültigen Token authentifiziert sind
- Stellen Sie sicher, dass Sie Mitglied von Organisationen sind
- Der Token benötigt Berechtigungen für den Zugriff auf Organisationen
Scan zu langsam
- Das Skript enthält absichtliche Verzögerungen, um Rate Limiting zu vermeiden
- Repositories mit vielen Branches dauern länger
- Organisationen mit vielen Repositories dauern länger
📝 Wichtige Hinweise
- Rate Limiting: Das Skript respektiert die Grenzen der GitHub-API durch automatische Verzögerungen
- Datenschutz: Der Token wird nur lokal im Browser verwendet, nicht an externe Server gesendet
- Genauigkeit: Der Scanner überprüft nur das
package.json im Stammverzeichnis des Repositories
- Branches: Alle Branches werden überprüft, aber nur solche mit
package.json werden gemeldet
- Versionen: Der Scanner erkennt verwundbare Versionen basierend auf den CVE-Definitionen
🛡️ Sicherheit
- Das Skript läuft vollständig im Browser (clientseitig)
- Es werden keine Daten an externe Server gesendet
- Der Personal Access Token wird nur für Anfragen an die GitHub-API verwendet
- Es wird empfohlen, Token mit minimal erforderlichen Bereichen zu verwenden
📄 Lizenz
MIT License
🔄 Version
3.0.0
Entwickelt zur Erkennung von Sicherheitslücken in React- und Next.js-Projekten