Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2026-59891-control-lab — Isoliertes Regression- und Sicherheitskontroll-Labor für CVE-2026-59891 in @sigstore/oci | Kitploit
Tools/GitHubGitHub/gyubin02/cve-2026-59891-control-lab
Container-SicherheitSchwachstellenanalyseCloud-SicherheitLieferkettensicherheitFehlkonfigurationLernen & BildungLabs & Praxis
GitHubgyubin02/cve-2026-59891-control-lab

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

cve-2026-59891-control-lab

Isoliertes Regression- und Sicherheitskontroll-Labor für CVE-2026-59891 in @sigstore/oci

Repository anzeigen
36vor 3 MonatenNoch nicht geprüft

CVE-2026-59891 Regression & Control Lab

Ein isoliertes Übungs- und Read-only-Audit-Projekt, das die tatsächlich verwundbare Version und die korrigierte Version von @sigstore/oci mit identischen Eingaben vergleicht und die Expositionsbedingungen je Umgebung prüft.

Der CVE Reporter dieses Projekts ist gyubin02.

Zusammenfassung für Bewerbung und Vorstellungsgespräch: Fallbeispiel zur Automatisierung des Schwachstellenmanagements CVE-2026-59891

Was wird verifiziert

Der Kern von CVE-2026-59891 ist eine Hostname-Verwechslung, die bei der Auswahl von Registry-Anmeldeinformationen auftritt.

  • 0.7.0: cr.io kann Anmeldeinformationen für ghcr.io auswählen, weil cr.io als Zeichenkette in ghcr.io enthalten ist.
  • 0.7.1: Nach der Normalisierung des Hostnamens werden nur exakt übereinstimmende Anmeldeinformationen ausgewählt.

Dieses Repository verifiziert zunächst automatisch zwei Szenarien der Credential-Auswahl.

  1. collision: Es sind nur Anmeldeinformationen für ghcr.io vorhanden, das Ziel ist jedoch cr.io
  2. exact: Es sind Anmeldeinformationen für cr.io vorhanden, die exakt mit dem Ziel übereinstimmen

Die verwundbare Version wählt im ersten Szenario die falschen Anmeldeinformationen aus, während die korrigierte Version dies ablehnen muss. In beiden Versionen muss das zweite, reguläre Szenario erfolgreich sein.

Zusätzlich wurde ein dynamischer Vergleich mit einer einmaligen Mock-Registry auf 127.0.0.1 anstelle einer echten externen Registry hinzugefügt. Die verwundbare Version 0.7.0 stellt zwei Anfragen an localhost, und nach der Authentifizierungs-Challenge wird bei der zweiten Anfrage ein synthetischer Authorization-Header beobachtet. Die korrigierte Version 0.7.1 wird bereits bei der Credential-Auswahl abgelehnt, sodass keine Anfragen erfolgen. In den Ergebnissen werden anstelle der Header-Werte nur die Beobachtung und die Anzahl der Anfragen festgehalten.

CLI zur Prüfung der Projekt-Exposition

cve-2026-59891-audit liest nur die Metadaten der package-lock.json des Zielprojekts und der explizit angegebenen Docker-Config und unterscheidet Folgendes:

  • Installationsort und Version des betroffenen @sigstore/oci
  • Vorhandensein einer verwundbaren Version und ob die tatsächlichen Expositionsbedingungen erfüllt sind
  • Teilstring-Kollisionen bei der Registry und das tatsächlich ausgewählte Ziel gemäß der Reihenfolge der JSON-Schlüssel
  • Prioritäten je Umgebung, Maßnahmen und Wiederholungsprüfungsverfahren
  • JSON- und Markdown-Nachweise mit entfernten Registry-Hostnamen und absoluten Pfaden

Sofortige Ausführung mit synthetischen Fixtures:

npm run audit:demo

Andere Node.js-Projekte prüfen:

npm run audit:project -- \
  --project ../target-project \
  --docker-config ../review-copy/config.json \
  --image cr.io/example/demo \
  --destination-trust unknown \
  --format markdown \
  --output reports/cve-2026-59891.md

--destination-trust muss genau eines der folgenden angeben.

  • trusted: Bestätigt, dass das Ziel durch Code und Allowlist eingeschränkt ist
  • untrusted: Externe Eingaben oder Workflow-Eingaben beeinflussen das Ziel
  • unknown: Noch nicht bestätigt

Die Bewertung wird in exposure_conditions_met, potential_exposure, affected_component_only, not_detected, indeterminate unterteilt. Auch not_detected ist lediglich ein Ergebnis für den dokumentierten Eingabebereich und bedeutet weder „sicher“ noch „regelkonform“.

Schutzmaßnahmen

  • Das Regression-Lab liest oder verändert die echte ~/.docker/config.json nicht.
  • Es wird ausschließlich ein isoliertes, dediziertes HOME und ein wertloses lab-user / LAB_ONLY_FAKE_TOKEN verwendet.
  • Das Paket wird nur aufgerufen, wenn HOME, Lab-Markierung und Fake-Werte alle exakt übereinstimmen.
  • Bestehende optionale Regressions-Probes blockieren alle HTTP(S)-, TCP-, TLS-, DNS- und fetch- Aufrufe mit einem Tripwire.
  • Auf den vom dynamischen Probe genutzten Node-Netzwerkoberflächen werden nur HTTP-Anfragen an den exakten, vom Betriebssystem zugewiesenen 127.0.0.1-Port zugelassen. Externes HTTP, HTTP an andere Ports, DNS-Resolver, TLS, UDP sowie globales fetch und WebSocket werden blockiert.
  • Kindprozesse erben weder die Token der aktuellen Sitzung noch die Docker-Umgebungsvariablen.
  • Es wird getestet, dass in stdout/stderr und den Audit-Ergebnissen nicht einmal Fake-Header gespeichert werden, sondern nur Booleans und die Anzahl der Anfragen.
  • Das Prüf-CLI kann --docker-config nicht weglassen und leitet die Datei nicht aus HOME oder DOCKER_CONFIG ab.
  • Das CLI dekodiert, hasht oder gibt keine Credential-Werte aus und führt weder Pakete des Zielprojekts noch Docker oder Credential-Helper aus und stellt keine Netzwerkverbindung her.
  • Wenn Symlinks, doppelte JSON-Schlüssel, nicht unterstützte Lockfiles oder ein npm-shrinkwrap.json mit höherer Priorität gefunden werden, wird nicht vorschnell auf Sicherheit geschlossen, sondern es schlägt fehl.

Da absichtlich verwundbare Pakete installiert werden, ist die npm-Paketverteilung mit "private": true gesperrt. Sie darf nicht als Abhängigkeit von Produktionscode verwendet werden. Aus diesem Grund ist es ein erwartetes Ergebnis, dass npm audit 0.7.0 meldet; Umfang und Grund der Ausnahme sind in SECURITY.md dokumentiert.

Ausführung

Anforderungen: Node.js 22.22.2+, 24.15.0+ oder 26 und höher. Die empfohlene Version ist in .nvmrc festgeschrieben.

npm ci --ignore-scripts
npm test
npm run demo
npm run dynamic:demo
npm run audit:fixture
npm run audit:demo
npm run evidence

Zentrale erwartete Ergebnisse von npm run demo:

0.7.0  collision  credential-selected
0.7.1  collision  credential-rejected
0.7.0  exact      credential-selected
0.7.1  exact      credential-selected

Regression result: PASS

Die zentralen erwarteten Ergebnisse von npm run dynamic:demo:

{
  "vulnerable": {
    "packageVersion": "0.7.0",
    "credentialSelection": "credential-selected",
    "requestCount": 2,
    "authorizationObserved": true,
    "digestVerified": true,
    "networkPolicy": "exact-loopback-only"
  },
  "fixed": {
    "packageVersion": "0.7.1",
    "credentialSelection": "credential-rejected",
    "requestCount": 0,
    "authorizationObserved": false,
    "digestVerified": false,
    "networkPolicy": "exact-loopback-only"
  },
  "regressionResult": "PASS"
}

Es gibt insgesamt 34 automatisierte Tests. npm run evidence erzeugt insgesamt 7 Dateien: 6 zu prüfende Artefakte sowie SHA256SUMS, das deren Integrität verifiziert.

Kompetenzen, die dieses Projekt zeigt

  • Die Entstehungsbedingungen echter CVEs auf Codeebene erklären und sicher reproduzieren
  • Regressions tests entwerfen, die verwundbare und korrigierte Versionen unter identischen Bedingungen vergleichen
  • Ein Loopback-only-Testdesign, das sogar die lokale Übertragung synthetischer Credentials dynamisch vergleicht
  • Unabhängig vom öffentlichen CVSS die Angriffsvoraussetzungen in realen Umgebungen bewerten
  • package-lock v1, v2, v3, Aliase und verschachtelte Dependencies statisch identifizieren
  • Automatische Erstellung von JSON- und Markdown-Auditnachweisen ohne Geheiminformationen
  • Schwachstellenmanagement von der Entdeckung über die Auswirkungsanalyse und die Verifikation der Korrektur bis hin zu Kontrollen
  • Fehlersichere Sicherheitstests, die keine echten Anmeldedaten berühren

Quellen und Umfang

  • GitHub-Sicherheitshinweis GHSA-pf56-329r-95rw
  • NVD CVE-2026-59891
Tool herunterladen