„`html
Zusammenfassung
Eine Symlink-Escape-Vulnerabilität in NLTK (Natural Language Toolkit) vor Version 3.9.4 ermöglicht es lokalen Angreifern, beliebige Dateien außerhalb des Corpus-Verzeichnisses zu lesen. Die Schwachstelle wird durch unzureichende Pfadvalidierung in der Funktion CorpusReader.open() verursacht, die Symlink-Auflösung nicht berücksichtigt.
Betroffene Systeme
Alle NLTK-Installationen in Versionen vor 3.9.4 sind betroffen. Dies umfasst sowohl akademische als auch kommerzielle Umgebungen, die NLTK für Natural Language Processing verwenden. Besonders gefährdet sind Systeme mit mehreren Benutzern und unzureichenden Dateisystem-Berechtigungen.
Technische Details
Die Vulnerability liegt in der lexikalischen Pfadvalidierung des CorpusReader.open()-Aufrufs. Ein Angreifer mit lokalen Zugriff kann Symlinks innerhalb des Corpus-Wurzelverzeichnisses platzieren, die auf Dateien außerhalb dieser Grenze verweisen. Da die Validierung nur auf String-Ebene erfolgt, werden symbolische Links nicht aufgelöst und die Grenzen somit umgangen.
Ein beispielhafter Angriffsablauf:
- Angreifer erstellt einen Symlink im Corpus-Verzeichnis
- Symlink zeigt auf eine sensible Datei außerhalb des Corpus
- CorpusReader.open() folgt dem Symlink ohne Validierung
- Beliebiger Dateizugriff wird ermöglicht
Empfohlene Massnahmen
Sofortige Aktionen:
- Upgrade auf NLTK Version 3.9.4 oder höher durchführen
- Dateisystem-Berechtigungen überprüfen und beschränken
- Symlinks in produktiven Corpus-Verzeichnissen entfernen
Langfristige Massnahmen:
- Regelmäßige Sicherheitsupdates implementieren
- Input-Validierung auf symbolische Links erweitern
- Least-Privilege-Prinzipien für NLTK-Prozesse anwenden
Bewertung
CVSS Score: 6.2 (Mittel)
Angriffsvektor: Lokal
Authentifizierung: Erforderlich
Der Medium-Schweregrad ist gerechtfertigt, da lokale Systemzugriffe notwendig sind. In Multi-Tenant-Umgebungen erhöht sich das Risiko erheblich. Aktuell ist kein offizieller Patch verfügbar, weswegen sofortiges Upgrading erforderlich ist.
„`