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

Nachhaltigkeit

Nachhaltigkeit durch Digitalisierung – aber ohne Budget

Der Klimawandel hat das Thema Nachhaltigkeit auch in vielen Unternehmen ganz oben auf die Agenda gesetzt – und eine breite Mehrheit hofft auf digitale Technologien, um die gesteckten Ziele zu erreichen. So geben 7 von 10 Unternehmen (71 Prozent) mit 100 oder…
Smartwatch

Smartwatch: Die wichtigsten Vor- und Nachteile des beliebten Gadgets

In Zeiten von smarten Mobiltelefonen, handlichen Tablets und einer sprachgesteuerten künstlichen Intelligenz im eigenen Wohnzimmer verwundert es eigentlich nur wenig, dass sich auch die sogenannten Smartwatches nicht nur hierzulande stetig wachsender…
itsa 2021

Großes Wiedersehen der IT-Security-Experten auf der it-sa 2021

Der Restart ist gelungen: 274 Aussteller aus 18 Ländern und rund 5.200 Fachbesucher aus 28 Ländern machten die it-sa 2021 vom 12. bis 14. Oktober zum Treffpunkt für IT-Sicherheitsexperten und -entscheider.

Stormshield: Neu native Chiffrierungslösung für Google Workplace

Stormshield stellt die mit Google entwickelte Lösung Stormshield Data Security (SDS) für Google Workspace vor. Sie ermöglicht Unternehmen, die Google Workspace einsetzen, alle Arten von Informationen (Inhalte, Kommunikation etc.) völlig unabhängig und unter…
PrintNightmare

Cyberangriffe über PrintNightmare bleiben gefährlich

Am Patch Tuesday dieser Woche gab es einmal mehr neue Security Patches von Microsoft, die helfen teilweise akute Sicherheitslücken zu schließen. Ein Kommentar von Satnam Narang, Staff Research Engineer bei Tenable, zum aktuellen Patch Tuesday.
MysterySnail

MysterySnail: Zero-Day-Exploit für Windows OS entdeckt

Kaspersky-Experten haben einen neuen Zero-Day-Exploit entdeckt. ,MysterySnail' wurde im Rahmen der Analyse einer Reihe von Angriffen zur Erhöhung von Berechtigungen auf Microsoft-Windows-Servern identifiziert; zuvor hatten die automatisierten…

Anzeige

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

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