Stabsstelle Informationssicherheit der
Universität Stuttgart (RUS-CERT)
https://cert.uni-stuttgart.de
logo
Meldung Nr: RUS-CERT-949

[Generic/Python] Schwachstellen im Marshalling-Code
(2002-09-02 20:08:38.99279+00)

Quelle: http://cert.uni-stuttgart.de/archive/bugtraq/2002/07/msg00189.html

Python-Programme, die über von Python bereitgestellte Marshalling-Verfahren Daten einlesen, interpretieren bestimmte Eingaben als Programmcode.

Betroffene Systeme

Einfallstor
Der Angreifer muß in der Lage sein, Marshalling-Daten an eine Python-Anwendung zu übermitteln.

Auswirkung
Marshalling-Daten können Programmcode enthalten, der vom Python-Interpreter ausgeführt wird.

Typ der Verwundbarkeit
design flaw

Gefahrenpotential
hoch bis sehr hoch (abhängig von der Python-Anwendung, auf die mit dieser Schwachstelle ein Angriff durchgeführt wird)
(Hinweise zur Einstufung des Gefahrenpotentials.)

Kontext
Marshalling ist ein Verfahren, bei dem Datenstrukturen in eine Darstellung als Bytefolge überführt werden. Diese Bytefolge kann dann in Dateien gespeichert, übertragen usw. werden. Der Empfänger macht den Marshalling-Vorgang wieder rückgängig und gewinnt damit die Datenstrukturen zurück.

Python bietet zwei Marshalling-Verfahren an: Das Modul marshal implementiert eine plattformabhängige Variante (bei der auch Objekte gespeichert werden können, die Programmcode enthalten), pickle implementiert eine plattformunabhängige Variante, die direkt keine Code-Objekte speichern kann. (Daneben existiert noch cPickle, eine schnellere Reimplementierung von pickle in C.)

Beschreibung
Bei der Umkehr des Marshalling-Vorgangs durch pickle kann ein speziell gestalteter Eingabestrom dazu führen, daß beliebiger Code durch den Python-Prozeß ausgeführt wird. Bislang sind zwei unterschiedliche Angriffe bekannt:

In Python 2.2 sind zwar beide Schwachstellen behoben worden; dennoch sollte nicht davon ausgegangen werden, daß mit marshal oder pickle/cPickle Daten (und nicht Programmcode) aus nicht vertrauenswürdiger Quelle sicher geladen werden kann.

Dem RUS-CERT ist keine Anwendung bekannt, bei der tatsächlich über diese Schwachstelle Angriffe durchgeführt werden können.

Gegenmaßnahmen

(fw)

Hinweis
Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.

Copyright © 2022 RUS-CERT, Universität Stuttgart, https://cert.uni-stuttgart.de/


https://cert.uni-stuttgart.de/ticker/article.php?mid=949