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
sonic-gnmi-noauth — Dokumentiert und reproduziert eine Fail-Open-Authentifizierungsschwachstelle in SONiC gNMI, bei der eine leere UserAuth-Map unauthentifizierte gNMI Set- und gNOI-Schreibvorgänge ermöglicht, mit einem Loopback-Lab-Harness. | Kitploit
Tools/GitHubGitHub/abraxas/sonic-gnmi-noauth
Embedded-System-SicherheitSchwachstellenanalyseExploitationNetzwerksicherheitPenetrationstestsHardware- & IoT-SicherheitAuthentifizierungFehlkonfigurationLabs & Praxis
GitHubabraxas/sonic-gnmi-noauth

sonic-gnmi-noauth

Dokumentiert und reproduziert eine Fail-Open-Authentifizierungsschwachstelle in SONiC gNMI, bei der eine leere UserAuth-Map unauthentifizierte gNMI Set- und gNOI-Schreibvorgänge ermöglicht, mit einem Loopback-Lab-Harness.

19vor 7 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

Abraxas Labs - sonic-gnmi-noauth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sonic-gnmi-noauth

Write-up: https://abraxaslabs.tech/research/sonic-gnmi-noauth

sonic-gnmi-noauth

SONiC gNMI f13a08e0440f – SONiC Foundation / sonic-net

Community SONiC NOS. Nicht Dell Enterprise SONiC. Nicht SonicWall SonicOS. Das Komitee vergibt keine CVEs. gnmi-native.sh weiß, dass das Weglassen von --client_auth früher die Authentifizierung vollständig deaktivierte, daher erzwingt es den Zertifikatsmodus, wenn user_auth fehlt. Fail-closed. Dann übergibt es jedoch nie --ca_crt, wenn Zertifikate fehlen. setupFlags hebt das Zertifikat auf, weil keine CA vorhanden ist. authenticate() behandelt die leere Map als Erfolg. Native- und translib-Schreibvorgänge bleiben einkompiliert (ENABLE_NATIVE_WRITE=y). Zwei Produktions-Flag-Sets, derselbe Skip: Standard-ToR --noTLS --bind_address 127.0.0.1; SmartSwitch DPU --insecure --allow_no_client_auth, leeres Bind, alle Interfaces, Port 8080.

Leeres UserAuth nach dem Zertifikats-Unset bedeutet unauthentifizierte gNMI Set- und gNOI-Schreibvorgänge. DPU ohne Zertifikate ist remote auf :8080 erreichbar.

IDnoch keine CVE
CWECWE-306, CWE-287
CVSSKritisch: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (DPU ohne Zertifikat). Standard-ToR ist derselbe Skip auf 127.0.0.1:8080 (Hoch, lokal).
Produktsonic-gnmi / sonic-buildimage
Betroffensonic-gnmi bis master f13a08e0440f; Launcher 9495839742e4
Authunauthentifiziert
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Auf einem SmartSwitch DPU ohne gNMI-Zertifikate: aus dem Netzwerk, TCP :8080, kein JWT, kein PAM, kein Client-Zertifikat. gnmi.gNMI/Set aufrufen (native CONFIG_DB / translib). gnoi.debug.Debug aufrufen. Neustart. Werksreset. File.Put unter /tmp, /var/tmp, /host.

Auf einem Standard-ToR/Leaf ohne Zertifikate: jeder Prozess, der 127.0.0.1:8080 erreichen kann, tut dasselbe. Der gnmi-Container nutzt das Host-Netzwerk, daher ist dieses Loopback das des Hosts.

Das bedeutet Umschreiben der Switch-Konfiguration und Ausführen von Host-Befehlen als admin, ohne Authentifizierung. Die Debug-Whitelist umfasst docker, config, redis-cli, sonic-installer, reboot. Das Standard-admin ist in docker und %sudo. Nicht das dokumentierte Standard-admin-Passwort. KillProcess gibt bei leerem UserAuth weiterhin Unauthenticated zurück. Verwenden Sie das nicht als Erfolgs-Orakel.

Wie ich es gefunden habe

Ich habe zuerst SECURITY.md gelesen. sonic-net/SONiC ist das Wiki. Der Code liegt in benachbarten sonic-net/*-Bäumen. Dann zehn Jagden auf diesen Pins: CLI-Injection, REST-Auth, gNMI Set, hostcfgd PAM, RESTCONF, ZTP, Image Redis/sshd/sudo, FEATURE-Defaults, GCU/SSTI, DHCP/LLDP/SNMP. Kein Live-Switch. Die Messlatte war Kritisch/Hoch.

Der größte Teil dieser Leiste ist bereits geschlossen oder nicht Standard. sonic-restapi ist INCLUDE_RESTAPI ?= n. Der Produktions-Launcher von RESTCONF erzwingt PAM. Host-Redis ist 127.0.0.1 ohne requirepass, was ein erster Hop ist, kein Befund. Der gnmi-Container ist nicht optional. INCLUDE_SYSTEM_GNMI = y. FEATURE gnmi ist aktiviert. Host-Netz, Host-PID, Host-User-Namespace.

Ich habe kein vollständiges sonic-vs-Image aufgesetzt. Das Lab ist ein dünner gRPC-Wrapper um SHA256-geprüfte Extrakte von setupFlags und authenticate() aus dem Pin f13a08e0440f. Beide Listener gaben SONIC-GNMI-NOAUTH-WITNESS mit auth_enabled=false und enable_native_write=true zurück. Passwort-UserAuth ohne Anmeldedaten ist Unauthenticated. Das ist der echte Skip, kein Stub, der immer erfolgreich ist.

Bereits dokumentierte Irrwege: KillProcess Unauthenticated (dieser RPC lehnt bereits leeres UserAuth ab – das Lab erfordert den Skip von authenticate() im Set-Pfad); Probe OK, wenn Passwort-UserAuth aktiviert ist und keine Anmeldedaten vorliegen (dann ist das Orakel ein Stub); ein gNOI-Debug-Docker-Gadget, nsenter-Payload, Reverse Shell. Theater. Das auf eine Dell Enterprise SONiC-Box oder eine SonicWall zu richten. Falsches Produkt.

Lab

cd lab
./run.sh

Nur 127.0.0.1:18080 (ToR-Klartext) und 127.0.0.1:18081 (DPU TLS-unsicher) anvisieren. Schlankes gRPC, kein vollständiges DPU-Image. Pin-Extrakte werden beim Build gegen sonic-gnmi f13a08e0440f gehasht.

IOC tor-connect 127.0.0.1:18080 plaintext no-metadata
IOC tor-check witness=SONIC-GNMI-NOAUTH-WITNESS auth_enabled=false enable_native_write=true user_auth_any=false mode=tor
IOC dpu-connect 127.0.0.1:18081 tls-insecure no-client-cert no-metadata
IOC dpu-check witness=SONIC-GNMI-NOAUTH-WITNESS auth_enabled=false enable_native_write=true user_auth_any=false mode=dpu
IOC tor-negative status=UNAUTHENTICATED
IOC dpu-negative status=UNAUTHENTICATED
SUCCESS SONIC-GNMI-NOAUTH who=unauth tor=18080 dpu=18081 SONIC-GNMI-NOAUTH-WITNESS

Die Behebung

Wenn UserAuth nach dem Entfernen des Zertifikats leer ist, darf kein Set-/gNOI-Schreibzugriff bereitgestellt werden, und es darf nicht außerhalb von Loopback gelauscht werden. Kopieren Sie UserAuth auch auf dem --noTLS-Pfad. Stellen Sie Serverzertifikate und eine CA bereit, sodass --ca_crt gesetzt ist und der Zertifikatsmodus nicht deaktiviert ist. Betreiben Sie SmartSwitch DPU ohne Zertifikat (--insecure --allow_no_client_auth mit leerer CA) nicht auf einem erreichbaren :8080. Beide Listener müssen für ein leeres UserAuth auf dem Schreibpfad Unauthenticated zurückgeben.

Referenzen

Tool herunterladen