Anzeige

Gehackte Software

Sicherheitsforscher von JFrog deckt Code-Injection-Problem in Yamale, einem beliebten Schema-Validator für YAML, der von über 200 Repositories verwendet wird, auf. Die Schwachstelle wurde mit CVE-2021-38305 bezeichnet.

Ein Angreifer muss allerdings in der Lage sein, den Inhalt der Schemadatei zu spezifizieren, um Python-Code einspeisen zu können. Dies kann allerdings auch aus der Ferne geschehen und der eval-Schutz kann umgangen werden.

Potenzielle Angreifer, die den Inhalt der Schema-Datei, die an Yamale übergeben wird, kontrollieren können (-s/--schema Kommandozeilenparameter), können eine scheinbar gültige Schema-Datei bereitstellen, die beliebigen Python-Code ausführt. Die Schema-Datei ist einer der beiden obligatorischen Parameter für Yamale (der andere ist die zu validierende YAML-Datei). Das Problem liegt in der Funktion parser.parse. Ein Angreifer kann allerdings nicht einfach bösartigen Code ausführen, da Code wie __import__('os').system('evil_command') fehlschlägt, weil das __import__-Builtin nicht verfügbar ist. Wie wir weiter unten erklären, gibt es jedoch immer noch eine Schwachstelle. Das zugrundeliegende Problem ist nämlich, dass ein Angreifer durch Python-Reflection jedes benötigte Builtin zurückholen und beliebigen Code ausführen kann.

Die Verantwortlichen von Yamale haben sich dafür entschieden, die Eingabezeichenfolge zu bereinigen, bevor sie über eine Whitelist an eval übergeben wird. Wenn die ausgewertete Zeichenkette eine Teilzeichenkette enthält, die nicht auf der Whitelist steht, schlägt die Operation fehl. Dies ist eine durchaus akzeptable Lösung, solange die Whitelist restriktiv genug ist. Zu beachten ist, dass die Verwendung einer schwarzen Liste nicht zu empfehlen ist, da Angreifer in der Regel eine Kombination von Werten finden können, die die schwarze Liste umgehen und schließlich trotzdem etwas Bösartiges ausführen. Wenn möglich, wird dringend die Verwendung von ast.literal_eval anstelle von eval geraten. literal_eval kann nur einfache Ausdrücke verarbeiten, sollte aber für viele einfache Anwendungsfälle ausreichen, ohne den Code angreifbar zu machen.

Fazit

Abschließend empfehlen die Sicherheitsforscher, eine der oben genannten Methoden zu verwenden, um eval zu säubern, und wenn möglich, die Verwendung von eval ganz zu vermeiden. Dies gelingt, indem man es durch eine spezifischere API für die gewünschte Aufgabe ersetzt. Yamale hat das Problem in Rekordzeit validiert und behoben. JFrog hat nach dem Responsable Disclosure-Prozess eine CVE für das Problem erstellt, nachdem die behobene Version verfügbar war.

www.jfrog.com


Weitere Artikel

Activision Blizzard

Microsoft übernimmt Gamesfirma Activision Blizzard

Microsoft übernimmt in einem fast 70 Milliarden Dollar schweren Deal den großen Videospieleanbieter Activision Blizzard. Der Software-Riese, der hinter der Xbox-Spielekonsole steht, sichert sich damit populäre Spiele wie «Call of Duty», «Overwatch» und «Candy…
Ericsson

Patentklagen: Ericsson geht gegen Apple vor

Nach dem Auslaufen eines Patentdeals zwischen Ericsson und Apple zieht der schwedische Netzwerk-Ausrüster vor Gericht. In Klagen in Texas wirft Ericsson dem iPhone-Konzern die Verletzung von insgesamt zwölf Patenten vor.
Euro

IT-Ausgaben werden 2022 um 5,1 % steigen

Laut dem Research- und Beratungsunternehmen Gartner werden sich die weltweiten IT-Ausgaben im Jahr 2022 auf 4,5 Billionen US-Dollar erhöhen, was einem Anstieg von 5,1 % gegenüber 2021 entspricht.
Chrome

Chrome nagelt User auf Suchmaschine fest

Nutzer des aktuellen Google-Webbrowsers Chrome (Version 97) können in den Einstellungen ab sofort nicht mehr die per Default gesetzten Suchmaschinen aus der Liste entfernen. Gleiches trifft auch auf das freie Chromium-Projekt zu, wie Reddit-User berichten.
Corona Warn App

Ob 2G oder 3G plus: Neue Version der Corona-Warn-App zeigt Status an

Die offizielle Corona-Warn-App des Bundes ist in einer neuen Version in der Lage, gültige Impf- oder Genesenenzertifikate sowie einen digitalen Testnachweis in einen Gesamtstatus zusammenzufassen. Das teilten die Betreiber der App, die SAP und Deutsche…
Social Media Commerce

Nebenbei einkaufen: Social Commerce wird zum Billiardengeschäft

Das Einkaufen auf Social-Media-Plattformen wie Instagram und TikTok wird bis 2025 weltweit 1,2 Bio. Dollar (2021: 492 Mrd. Dollar) erreichen, wie der Bericht "Why Shopping's set for a social Revolution" der Unternehmensberatung Accenture prognostiziert. Dies…

Anzeige

Jetzt die smarten News aus der IT-Welt abonnieren! 💌

Mit Klick auf den Button "Zum Newsletter anmelden" stimme ich der Datenschutzerklärung zu.