FlawOpen

flawopen.com/Teardowns/cve-2026-102255-sonicwall-sma1000-workplace-ssrf

● CVE-2026-102255 · CVSS 10.0[1] · Kritisch
Sicherheitsforschung · FlawOpen

CVE-2026-102255: SSRF in SonicWall SMA1000 WorkPlace

CVE-2026-102255 ist eine SSRF-Schwachstelle vor der Anmeldung mit CVSS 10,0 in SonicWall SMA1000 WorkPlace. Am 12. Oktober erklärte MS-ISAC, es gebe derzeit keine Berichte über eine Ausnutzung der vier Schwachstellen aus dem Hinweis in freier Wildbahn. Außerdem beschrieb die Stelle einen bedingten Pfad von dieser SSRF zu Remote Code Execution, falls sie mit CVE-2026-102256 verkettet wird, einer separaten Command-Injection-Schwachstelle, für die ein angemeldetes Administratorkonto erforderlich ist. Der Hinweis beschreibt weder die Kette noch, wie die Authentifizierung überwunden würde; es handelt sich um eine Risikobewertung, nicht um eine nachgewiesene Kette. Am 9. Oktober wurden Honeypot-Versuche gemeldet, die zu CVE-2026-102255 passen; eine erfolgreiche Kompromittierung wurde nicht belegt. Installieren Sie den Plattform-Hotfix.[1], [2], [3], [4], [5], [6]

💡 Einfache Erklärung (ELI5)

Stellen Sie sich das Gerät als Empfangskraft vor, die Nachrichten zwischen Räumen weiterleitet. Der Fehler erlaubt einem Fremden, sie eine Nachricht in einen Raum mit erforderlicher Identitätsprüfung bringen zu lassen. SonicWall hat diesen Weg behoben; der Hinweis zeigt weder interne Route noch Quellcode-Patch.[1]

Kernkonzepte & Begriffe

Server-Side Request Forgery (SSRF)
Ein Server wird dazu gebracht, eine von einem nicht vertrauenswürdigen Aufrufer gewählte Anfrage zu senden. Laut SonicWall kann das Gerät im Namen des Aufrufers interne Funktionen erreichen.[1], [3]

Framework-Zuordnungen

  • CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-918

Ursachenanalyse

SonicWall beschreibt einen unbeabsichtigten alternativen Zugriffsweg in Appliance WorkPlace des SMA1000. Ein nicht authentifizierter Angreifer aus der Ferne kann das Gerät dazu bringen, in seinem Namen Anfragen zu senden, interne Funktionen zu erreichen und nicht autorisierte Aktionen auszuführen. SonicWalls Hinweis veröffentlicht keinen Firmware-Quelldiff. BleepingComputer zitiert den Forscher Ryan Dewhurst mit dem Bericht, dass Honeypots OPTIONS-Versuche gegen WorkPlace Extraweb und den lokalen CouchDB-Dienst beobachtet hätten. Der Bericht belegt nicht, dass ein Versuch ein System kompromittiert hat; dieser Artikel behandelt ihn als zugeschriebenen Versuchshinweis, nicht als bestätigte Ausnutzung. Der gemeldete Payload und die Zugangsdaten werden nicht wiedergegeben. SonicWall bewertet die Schwachstelle mit CVSS 10,0 Kritisch; der CVE-Eintrag nennt CWE-918. Der Hersteller erklärt, die Oktober-Schwachstellen stünden nicht mit anderen SonicWall-Fehlern in Verbindung. Verbinden Sie diese CVE nicht mit früheren SMA1000-Meldungen zu einer Exploit-Kette. Der SonicWall-Hinweis vom 6. Oktober meldete zu diesem Zeitpunkt keine Hinweise auf aktive Ausnutzung. Am 9. Oktober berichtete BleepingComputer, dass der Forscher Ryan Dewhurst von mit dieser CVE vereinbaren Versuchen in Previdian-Honeypots berichtet habe; ein erfolgreicher Systemzugriff sei nicht belegt. Aktualisierung vom 12. Oktober 2026: MS-ISAC zufolge gibt es derzeit keine Berichte über eine Ausnutzung der vier Schwachstellen aus diesem Hinweis in freier Wildbahn. Das ist mit dem Bericht vom 9. Oktober über Honeypot-Versuche vereinbar: Versuche belegen keine erfolgreiche Ausnutzung, und MS-ISAC nennt kein Opfer. Derselbe Hinweis bewertet, dass die SSRF vor der Anmeldung CVE-2026-102255 mit CVE-2026-102256 verkettet werden könnte, einer separaten OS-Command-Injection-Schwachstelle, für die ein angemeldeter Administrator erforderlich ist, und so zu Remote Code Execution und vollständiger Systemkompromittierung führen könnte. Er erklärt nicht, wie die Authentifizierungsvoraussetzung erfüllt würde, beschreibt keine nachgewiesene Abfolge und meldet keine solche Kette in beobachteter Aktivität. Behandle dies als bedingte staatliche Risikobewertung, nicht als bestätigte oder reproduzierbare Exploit-Kette. SonicWall nennt 12.4.3-03670+ und 12.5.0-03082+ als behobene Builds; installiere das Update unabhängig davon, ob die Kette nachgewiesen wurde.[1], [2], [3], [4], [6]

Schritt-für-Schritt Angriffsablauf

Schritt 1

Unangemeldete Anfrage erreicht WorkPlace

SonicWall verortet den Fehler vor der Anmeldung in SMA1000 WorkPlace. BleepingComputer berichtet von Honeypot-Beobachtungen zu OPTIONS-Versuchen gegen WorkPlace Extraweb; ein erfolgreicher Zugriff ist damit nicht belegt.[1], [4]

Schritt 2

Das Gerät handelt im Namen des Aufrufers

Laut Hersteller kann das Gerät interne Funktionen erreichen und nicht autorisierte Aktionen ausführen. BleepingComputer zufolge zielten Versuche auf den lokalen CouchDB-Dienst; der Forscher hatte jedoch keine erfolgreiche Kompromittierung festgestellt.[1], [4]

Schritt 3

Betriebliche Reaktion: Patchen und untersuchen

SonicWall nennt 12.4.3-03670+ und 12.5.0-03082+ als behobene Builds. Falls sich das Patchen verzögert, beschränken Sie die Erreichbarkeit von WorkPlace vorübergehend, sichern Sie Protokolle und untersuchen Sie den Vorfall. Die gemeldeten Versuche belegen keine erfolgreiche Kompromittierung.[1], [4], [5]

Quellcode: Verwundbar vs. Sicher

Firmware-Quellcode und Patch-Diff sind nicht öffentlich. Dieses generische Python-Beispiel beschränkt Aufrufer auf eine feste Dienstkennung; die Anwendung kontrolliert Ursprung und Pfad und deaktiviert Weiterleitungen. Dies ist weder SonicWall-Code noch eine CVE-Reproduktion oder vollständiger SSRF-Schutz. Installieren Sie den SonicWall-Plattform-Hotfix.[1]

Quelltextauszug: Generic SSRF defense illustration; not SonicWall source

VERWUNDBARE IMPLEMENTIERUNG
# Allgemeine Illustration; kein SonicWall-Quellcode und keine Reproduktion.
def fetch_health(user_supplied_url, session):
    return session.get(user_supplied_url, timeout=3)
GEHÄRTETER SICHERHEITS-PATCH
# Allgemeines SSRF-Abwehrmuster; kein SonicWall-Quellcode und kein vollständiger Patch.
from urllib.parse import urljoin

SERVICE_PATHS = {"status": "/health"}
BASE_URLS = {"status": "https://status.example.internal"}

def fetch_health(service_id, session):
    base = BASE_URLS.get(service_id)
    path = SERVICE_PATHS.get(service_id)
    if base is None or path is None:
        raise ValueError("unknown service")
    # Benutzereingaben wählen eine feste Funktion, niemals eine URL oder einen Host.
    return session.get(urljoin(base, path), timeout=(2, 3), allow_redirects=False)

Checkliste für Engineering & Systemsicherheit

Quellen