Sicherheitsforscher entdecken Schwachstelle im SAP-Druckprotokoll
Die Onapsis Research Labs haben eine gravierende Sicherheitslücke im SAP-Druckprotokoll aufgedeckt. Die Schwachstelle mit der Kennung CVE-2025-42937 ermöglicht Angreifern das unautorisierte Hochladen beliebiger Dateien auf betroffene Server. Das Protokoll, das für die Übermittlung von Druckaufträgen an den SAPSprint-Dienst zuständig ist, führt keine ausreichende Validierung von Dateipfaden durch.
Der Angriff benötigt keine Authentifizierung und zielt auf den Standardport 515 ab. Obwohl der exploitierbare Dateipfad auf 40 Zeichen limitiert ist, lässt sich diese Beschränkung überwinden. Angreifer können gezielt Dynamic Link Libraries (DLLs) überschreiben, die vom Dienst sapsprint.exe geladen werden. Ein Beispiel hierfür ist die Datei C:\Windows\OCR.dll. Durch diesen Ansatz wird die Ausführung beliebiger Befehle mit System-Rechten möglich, sofern der Dienst nicht isoliert betrieben wird.
Technische Details zur betroffenen Komponente
SAPSprint fungiert als Windows-Dienst für Remote-Druckvorgänge in SAP-Umgebungen. Der Dienst verbindet den SAP-Spool-Server mit dem Windows-Spooler und stellt die Weiterentwicklung des veralteten SAPlpd-Programms dar. Die Hauptfunktion besteht darin, Druckdaten von SAP-Systemen über das Netzwerk zu empfangen und an die konfigurierten Druckertreiber auf Windows-Servern weiterzuleiten.
Weltweit nutzen zahlreiche SAP-Kunden diese Komponente, insbesondere Unternehmen mit On-Premise-Installationen von SAP ECC oder S/4HANA Private Edition. Während SAP für Cloud-Angebote auf alternative Druckdienste setzt, bleibt SAPSprint der Standard für Organisationen mit zentralen Windows-Druckservern. Besonders in den Bereichen Lagerhaltung, Logistik und Fertigung ist der Dienst verbreitet, wo große Volumina an Etiketten, Rechnungen und Kommissionierlisten automatisiert verarbeitet werden müssen.
Protokollanalyse offenbart Schwachstellen
Das SAP-Druckprotokoll überträgt Daten als Klartext, was grundsätzlich anfällig für Abhör- und Replay-Attacken macht. Die Sicherheitsforscher richteten in ihrer Testumgebung einen SAPSprint-Dienst mit Standardkonfiguration ein und koppelten ihn mit einem SAP Netweaver ABAP-System. Mittels der SPAD-Transaktion konfigurierten sie ein Ausgabegerät vom Typ „PDF1“ mit der Zugriffsmethode „S: Drucken mit SAP-Protokoll“ für Port 515.
Die Netzwerkkommunikation zwischen SAP-System und Windows-Server erfolgt unverschlüsselt. Das SAPLPD-Protokoll weist eine einfache Struktur auf und offenbart Informationen wie Benutzername (DO), SAP-Client (DM), Gerätetyp (PT), Druckinhalt (DB) und Konfigurationsprüfungen (OM). Ohne Zugangsbeschränkungen auf Port 515 lassen sich Pakete von beliebigen Rechnern mittels Werkzeugen wie netcat replizieren.
Während des Druckvorgangs erstellt der Windows-Server mehrere Protokolldateien. Bei entsprechender Konfiguration von SAPSprint kann der gedruckte Inhalt gespeichert werden. Der übertragene Inhalt (DB) wird mit SAP LZA-Komprimierung komprimiert, wobei die Parameter die komprimierte und unkomprimierte Größe angeben.
Ausnutzung der Path-Traversal-Schwachstelle
Die Sicherheitslücke basiert auf einem fehlerhaften DS-Befehl, der unauthentifizierten Angreifern das Schreiben beliebiger Dateien auf den Zielserver ermöglicht. Die Forscher identifizierten eine spezifische Befehlssequenz, die das Path-Traversal-Problem im DS-Befehl auslöst. Der Dienst lässt sich dadurch veranlassen, Inhalte in Protokolldateien zu schreiben, was letztlich das Überschreiben beliebiger Dateien auf dem Windows-Server ermöglicht.
Die Begrenzung des Injektionspunkts auf 40 Zeichen schränkt die Angriffsmöglichkeiten ein, reicht jedoch für Remote Code Execution aus. Die Analyse der Protokolldateien zeigte, dass SAPSprint beim Empfang von Inhalten versucht, mehrere DLLs mit fest definierten Namen aus drei Verzeichnissen vorab zu laden – noch vor der eigentlichen Druckverarbeitung.
Zwei dieser Bibliotheken, OCR.dll und barcode64.dll, fehlen in der Standardinstallation. Diese Lücke ermöglicht DLL-Hijacking. Der ursprüngliche Pfad in der Standardkonfiguration lautet „C:\ProgramData\SAP\SAPSprint\Logs“. Die Zeichenfolge „../../../../“ zum Erreichen von C:\ umfasst 12 Zeichen, sodass der Zielpfad unter 28 Zeichen bleiben muss. Dies ist bei den genannten DLLs im Windows-Verzeichnis erfüllt.
Praktische Demonstration des Angriffs
Die Forscher demonstrierten die Ausnutzung durch Erstellung einer manipulierten DLL, die während DLL_PROCESS_ATTACH die WinExec-Funktion aufruft. Diese kompilierte Bibliothek wird als „Druckinhalt“ auf den Server unter C:\Windows\OCR.dll hochgeladen. Der SAPSprint-Dienst lädt die Datei unmittelbar nach dem Upload, wodurch die Befehlsausführung initiiert wird.
Für erweiterten Zugriff zeigten die Forscher verschiedene Angriffsvektoren, beispielsweise das Einschleusen einer Reverse Shell. Ein möglicher Ansatz nutzt eine Java-Datei, die auf dem Zielsystem kompiliert und ausgeführt wird. Um die Java-Verfügbarkeit sicherzustellen, kann die SAP JVM selbst hochgeladen werden.
Der mehrstufige Angriff umfasst zunächst den Upload der SAP JVM, gefolgt vom Hochladen einer Java-basierten Reverse Shell. Abschließend wird eine präparierte OCR.dll übertragen. Da der Upload als vollständiger Druckauftrag verarbeitet wird, lädt SAPSprint die manipulierte OCR.dll und führt die Befehlskette aus, die eine Verbindung zum Angreifer-System herstellt.
Maßnahmen zur Behebung
SAP hat die Schwachstelle durch den Sicherheitshinweis 3630595 adressiert. Der begleitende Hinweis 3636888 enthält häufig gestellte Fragen und weist auf erforderliche Ausfallzeiten hin. Administratoren sollten beide Dokumente konsultieren.
Als Sofortmaßnahme und beste Praxis empfiehlt sich die Aktivierung der SNC-Verschlüsselung für die Inhaltsübertragung. Standardmäßig ist keine Verschlüsselung aktiv. Im Druckoptions-Editor unter SNC-Optionen muss der SNC-Modus auf „Nur sichere Verbindungen“ konfiguriert werden. Die Einstellung „Beide Verbindungen“ reicht zur Abwehr des Angriffs nicht aus.
Detaillierte Konfigurationsanleitungen, einschließlich Installation der SAPCryptoLib, SPAD-Konfiguration und verschiedenen Betriebsmodi, finden sich im SAP-Hinweis 96079 zur Konfiguration von SAPSprint mit SNC sowie im allgemeinen Hinweis 894444 zum serverbasierten Drucken unter Microsoft Windows.
Bewertung und Einordnung
Die Sicherheitslücke erhielt den CVSS-Score 9,8 und wird als höchste Prioritätsstufe eingeordnet. Die betroffene Komponente ist der SAPSprint-Server, der in zahlreichen Produktionsumgebungen eingesetzt wird. Aufgrund der fehlenden Authentifizierungsanforderung und der weitreichenden Auswirkungen sollten betroffene Organisationen zeitnah Patches einspielen und die empfohlenen Sicherheitsmaßnahmen implementieren.
Onapsis Research Labs stellt einen detaillierten Leitfaden zur Verfügung, der Schritt-für-Schritt-Anleitungen zum Patchen der Systeme und zur korrekten SNC-Konfiguration enthält.
Schrittweiser Leitfaden zur Absicherung
Die Absicherung von SAPSprint-Installationen (Offizielle SAPSprint-Dokumentation) gegen CVE-2025-42937 erfolgt in mehreren Phasen. Da der Dienst häufig ohne Authentifizierung auf Standardports betrieben wird, stellt er ein bevorzugtes Angriffsziel dar. Der folgende Leitfaden bietet eine strukturierte Vorgehensweise für Patch-Installation, Konfiguration und Validierung.
Phase 1: Identifikation und Isolierung betroffener Systeme
Vor der Patch-Installation müssen alle exponierten Instanzen identifiziert werden. SAPSprint wird oft auf Infrastruktur-Servern installiert, die nicht im primären SAP-Bestand erfasst sind.
Identifikation anfälliger Instanzen: Administratoren sollten ihre Windows-Server-Umgebung nach dem Dienst sapsprint.exe durchsuchen. Besondere Aufmerksamkeit gilt der Prüfung, ob Port 515 (TCP) dem Internet oder nicht vertrauenswürdigen Netzwerksegmenten ausgesetzt ist. Automatisierte Scanning-Werkzeuge können dabei helfen, versteckte Instanzen zu lokalisieren und nach geschäftlicher Relevanz zu priorisieren.
Notfallisolierung bei verzögerter Patch-Installation: Sollte eine umgehende Patch-Installation nicht realisierbar sein, empfiehlt sich die Beschränkung des Netzwerkzugriffs. Hostbasierte Firewalls wie die Windows-Firewall können so konfiguriert werden, dass Datenverkehr zu Port 515 ausschließlich von bekannten SAP-Anwendungsservern zugelassen wird. Diese Maßnahme begrenzt die Angriffsfläche und verhindert laterale Bewegungen von kompromittierten Workstations oder externen Angreifern.
Phase 2: Installation des Sicherheitsupdates
Die primäre Abhilfe besteht im Austausch der ausführbaren Datei durch die gepatchte Version.
Download der Sicherheitshinweise: Über das SAP Support Portal kann der Sicherheitshinweis 3630595 abgerufen werden. Dabei ist sicherzustellen, dass die korrekte Version für die jeweilige SAPSprint-Installation heruntergeladen wird, typischerweise Version 7.70 oder höher.
Service-Update mit Ausfallzeit: Der Patch erfordert einen Neustart des Dienstes. Zunächst muss der SAPSprint-Dienst über services.msc oder die Befehlszeile (net stop SAPSprint) beendet werden. Anschließend wird die vorhandene ausführbare Datei durch die gepatchte Version 7700.1.2.3 oder neuer ersetzt. Nach dem Neustart des Dienstes sollte überprüft werden, ob dieser korrekt ausgeführt wird. Der SAP-Hinweis 3636888 enthält spezifische Informationen zur Patch-Installation.
Phase 3: Protokollabsicherung durch Verschlüsselung
Während das Patchen den Programmierfehler behebt, eliminiert die Protokollabsicherung die zugrunde liegende Angriffsfläche. Das standardmäßige SAPLPD-Protokoll überträgt Druckdaten unverschlüsselt und bleibt damit anfällig für Manipulationen.
Konfiguration von Secure Network Communications (SNC): Die Erzwingung von Verschlüsselung verhindert das Einschleusen bösartiger Payloads in den Druckstrom. Im Druckoptionen-Editor muss zu SNC-Optionen > SNC-Modus navigiert werden. Dort ist die Einstellung „Nur sichere Verbindungen“ zu wählen.
Wichtiger Hinweis zur Konfiguration: Die Auswahl „Beide Verbindungen“ ist unzureichend. Dieser gemischte Modus ermöglicht es Angreifern, die Verbindung auf Klartext herunterzustufen und Sicherheitskontrollen zu umgehen. Zusätzlich muss sichergestellt werden, dass der Parameter snc/lib auf eine gültige, auf dem Host installierte SAP-Kryptografie-Bibliothek verweist.
Phase 4: Validierung und kontinuierliche Überwachung
Die Wirksamkeit der implementierten Maßnahmen sollte aktiv überprüft werden.
Überprüfung der Binärversion: Durch Rechtsklick auf sapsprint.exe unter Eigenschaften > Details lässt sich die Dateiversion einsehen. Diese muss mit der im Sicherheitshinweis aufgeführten Build-Nummer übereinstimmen (beispielsweise 7700.1.2.3).
Überwachung auf Exploit-Versuche: Auch nach erfolgreicher Patch-Installation sollten Administratoren auf Ausnutzungsversuche achten, die auf persistente Bedrohungsakteure im Netzwerk hindeuten könnten. Die Prüfung der SAPSprint-Protokolle (üblicherweise unter C:\ProgramData\SAP\SAPSprint\Logs) auf fehlgeschlagene Schreibversuche in sensible Verzeichnisse wie C:\Windows\ ist empfehlenswert. Automatisierte Erkennungssysteme können unbefugte Konfigurationsänderungen oder verdächtiges Dienstverhalten in Echtzeit identifizieren.
Konnektivitätstest: Ein Testdruckauftrag von einem Gerät ohne SNC-Konfiguration sollte abgelehnt werden. Wird der Auftrag trotzdem verarbeitet, ist die Einstellung „Nur sichere Verbindungen“ nicht korrekt implementiert.
Häufige Fragen zur Behebung
Ist ein Dienstneustart für die Patch-Installation erforderlich?
Der Patch beinhaltet einen Binärersatz, keine reine Konfigurationsänderung. Der Dienst sapsprint.exe muss gestoppt, die ausführbare Datei durch die gepatchte Version ersetzt und der Dienst anschließend neu gestartet werden. Eine kurze Ausfallzeit der Druckdienste ist einzuplanen.
Kann die Einstellung „Beide Verbindungen“ für SNC genutzt werden?
Diese Konfiguration wird nicht empfohlen. Bei Auswahl von „Beide Verbindungen“ bleibt das System anfällig für Downgrade-Angriffe, bei denen Angreifer die Verbindung zur Nutzung des unverschlüsselten Protokolls zwingen können. Nur die Einstellung „Nur sichere Verbindungen“ minimiert das Risiko von Protokollmanipulationen vollständig.
Wie lässt sich ohne automatisiertes Scanning prüfen, ob eine Instanz verwundbar ist?
Die manuelle Überprüfung erfolgt über die Dateiversionsprüfung. Nach Rechtsklick auf sapsprint.exe (üblicherweise unter C:\Program Files\SAP\SAPSprint) wird unter Eigenschaften > Details die Dateiversion angezeigt. Liegt diese unter der im SAP-Hinweis 3630595 angegebenen Version (niedriger als 7700.1.2.3), besteht Verwundbarkeit.
Betrifft die Schwachstelle den SAP-Anwendungsserver?
Die Verwundbarkeit ist auf den SAPSprint-Dienst beschränkt, einen eigenständigen Windows-Dienst für Remote-Druckvorgänge. Die Kompromittierung des SAPSprint-Servers verschafft Angreifern jedoch SYSTEM-Berechtigungen auf dem betroffenen Windows-Host, die als Ausgangspunkt für Angriffe auf die gesamte SAP-Landschaft genutzt werden können.
Welche Maßnahmen sind bei unmöglicher sofortiger Patch-Installation zu treffen?
Bei Verzögerungen muss der Dienst isoliert werden. Die Windows-Firewall auf dem Host-Server sollte so konfiguriert werden, dass der Zugriff auf Port 515 (TCP) ausschließlich auf bekannte SAP-Anwendungsserver beschränkt ist. Dies verhindert unbefugte externe Verbindungen, behebt jedoch nicht den zugrunde liegenden Programmierfehler.
Kann eine Installation trotz fehlender Erfassung im SAP-Bestand betroffen sein?
SAPSprint wird häufig auf Utility-Servern, Druckservern oder vergessener Infrastruktur installiert, die nicht als Teil der zentralen SAP-Instanz dokumentiert ist. Ein umfassender Scan der gesamten Windows-Server-Umgebung nach dem Dienst sapsprint.exe auf Port 515 wird ausdrücklich empfohlen.
„Die in diesem Beitrag bereitgestellten Informationen wurden sorgfältig recherchiert, erheben jedoch keinen Anspruch auf Vollständigkeit oder absolute Richtigkeit. Sie dienen ausschließlich der allgemeinen Orientierung und ersetzen keine professionelle Beratung. Die Redaktion übernimmt keine Haftung für eventuelle Fehler, Auslassungen oder Folgen, die aus der Nutzung der Informationen entstehen.“
Weitere Informationen
