Newsletter

SAP Security Patch Day 03/2023

„März 2023 Patch Day“

Wenn man die hoch priorisierten (d.h. CVSS > 8) Security Notes aus dem Monat März 2023 ansieht, so sind viele verschiedene Schwachstellentypen vertreten: „Code Injection“, fehlerhafte Berechtigungsprüfungen, „Directory Traversal“ und „OS Command Execution“ – für jeden Angreifer was dabei, könnte man denken. Mit dem Filter auf unser SAP HCM System bzw. der installierten Produkte und Komponenten verbleiben von den ursprünglich 28 Hinweisen noch 7 als einbaubar. 

Directory Traversal  

Bei einer Directory Traversal Schwachstelle kann ein Angreifer durch Manipulation von Datei- oder Pfadangaben, Daten aus nicht vorgesehenen Dateien auslesen oder überschreiben, und so beispielsweise den Betrieb des Systems stören. Die normalerweise vorgesehene Gegenmaßnahme gegen Directory Traversal Schwachstellen wird über eine Input-Validierung durchgeführt (s. dazu auch Hinweis 14970031).  Im Fall aus dem Hinweis 3294595 war zwar eine solche Input-Validierung bereits eingebaut – jedoch wurde deren Ergebnis (Feld sy-subrc) bisher falsch ausgewertet.  

Die Hinweise 3294954 (Durchführen einer zusätzlichen Berechtigungsprüfung) und 3302162 (Komplettes Stilllegen des Reports) haben einen anderen Ansatz als die Input-Validierung. Dies stellt jedoch auch eine sinnvolle Absicherung dar – die Hinweise wurden dementsprechend problemlos eingebaut. 

Generische Modulausführung 

Im Hinweis 3296476 sind mehrere RFC-fähige Funktionsbausteine betroffen, in denen es eine generische Modulausführung gibt – konkret kann der Name eines gerufenen Funktionsbausteins vom Aufrufer mitgegeben werden. Auch wenn hier im konkreten Fall aufgrund der Signatur der Funktionsbausteine nur wenige Alternativen in Frage kommen, sollte eine solche Generik nur angeboten werden, wenn es unbedingt notwendig ist. Dies ist anscheinend nicht der Fall und der genannte Hinweis korrigiert den Code so, dass die Aufrufe statisch stattfinden – also nicht ausnutzbar sind. 

Weitere Korrekturen 

Die übrigen Hinweise ließen sich ebenfalls problemlos implementieren. Erwähnt werden sollen noch 3296328 (Denial of Service) und 3296346 (Multiple Vulnerarbilities, darunter Cross-Site Scripting): hier fällt auf dass der korrigierte Code aus ABAP Unit Test Klassen stammt. Zwar werden diese typischerweise nicht in produktiven Umgebungen ausgeführt – aber auch Entwicklungs- und Testsysteme müssen abgesichert werden! 

Schließlich gilt: Vorsicht ist die Mutter der Porzelankiste  / better safe than sorry!