Die beliebte Python-Bibliothek NLTK (Natural Language Toolkit) weist in allen Versionen bis einschliesslich 3.9.2 eine kritische Path-Traversal-Schwachstelle auf. Der NLTK-Downloader prüft beim Verarbeiten von XML-Indexdateien die Attribute subdir und id nicht auf gefährliche Zeichenfolgen wie ../. Ein Angreifer, der einen eigenen XML-Indexserver betreibt, kann dadurch Opfer dazu bringen, beim Ausführen eines scheinbar harmlosen downloader.download()-Aufrufs beliebige Dateien auf deren System zu erstellen oder zu überschreiben – darunter potenziell sensitive Systemdateien wie /etc/passwd oder SSH-Schlüssel.
Bin ich betroffen? Wer NLTK in einem Python-Projekt einsetzt und dabei eigene oder fremde Indexserver nutzt (also nicht ausschliesslich den offiziellen NLTK-Server), ist potenziell gefährdet. Auch automatisierte Pipelines, die NLTK-Daten herunterladen, sollten geprüft werden. Die Schwachstelle erfordert, dass der Angreifer die Kontrolle über den verwendeten Indexserver hat – ein direkter Angriff ohne diesen Umweg ist nicht möglich.
Empfehlung: Ein offizieller Patch existiert derzeit nicht. Bis zur Bereitstellung einer korrigierten Version sollte man ausschliesslich den offiziellen NLTK-Datenserver verwenden und keine Drittanbieter-Indexserver einbinden. In CI/CD-Umgebungen empfiehlt sich ausserdem, NLTK-Downloads in isolierten Containern ohne schreibenden Zugriff auf kritische Systempfade auszuführen. Das Projekt sollte auf GitHub beobachtet werden, da ein Fix erwartet wird.




