Η CVE-2026-78683 αποκαλύπτει κρίσιμη ευπάθεια RCE και μη ασφαλή αποσειριοποίηση στο NLTK, τη δημοφιλή βιβλιοθήκη Python για επεξεργασία φυσικής γλώσσας. Κεντρικό ζήτημα είναι η ασφαλής αποσειριοποίηση των μοντέλων. Η αδυναμία αφορά τη φόρτωση μοντέλων και μπορεί να οδηγήσει σε εκτέλεση αυθαίρετου κώδικα όταν μια εφαρμογή ανοίγει αρχείο που έχει τροποποιήσει ο επιτιθέμενος.

Σύμφωνα με την καταχώριση του CVE Feed, επηρεάζονται οι εκδόσεις NLTK έως και την 3.9.4, ενώ η διόρθωση περιλαμβάνεται στην έκδοση 3.10.0. Η σοβαρότητα έχει αξιολογηθεί με βαθμολογία CVSS 9.6, γεγονός που καθιστά την άμεση αναβάθμιση προτεραιότητα για όσους χρησιμοποιούν το συγκεκριμένο τμήμα της βιβλιοθήκης.
Δείτε επίσης: CVE-2026-15529: Κίνδυνος αποσειριοποίησης στο pyod
Πώς λειτουργεί η μη ασφαλής αποσειριοποίηση στο NLTK
Το πρόβλημα εντοπίζεται στη μέθοδο TransitionParser.parse(), στο αρχείο nltk/parse/transitionparser.py. Η μέθοδος καλεί τη συνάρτηση pickle_load() με προεπιλεγμένη τιμή που δεν ενεργοποιεί την περιορισμένη φόρτωση. Η διαδικασία περνά έτσι από τον WarningUnpickler, ο οποίος δεν αντικαθιστά τον έλεγχο find_class().
Αυτό σημαίνει ότι ένα κακόβουλα κατασκευασμένο αρχείο μοντέλου μπορεί να περιέχει αλυσίδα αντικειμένων pickle που επιτρέπει την επίλυση αυθαίρετων κλάσεων. Όταν το αρχείο φορτωθεί από την εφαρμογή, ο ενσωματωμένος κώδικας εκτελείται με τα δικαιώματα του χρήστη που τρέχει την υπηρεσία. Η επίθεση δεν απαιτεί λογαριασμό, αλλά προϋποθέτει να ανοιχθεί το μη αξιόπιστο αρχείο.

Η βιβλιοθήκη διαθέτει ήδη τον RestrictedUnpickler για ασφαλέστερη αποσειριοποίηση, όμως η μη ασφαλής αποσειριοποίηση παραμένει ενεργή στη συγκεκριμένη διαδρομή παραγωγής, επειδή ο κώδικας δεν χρησιμοποιεί τον προστατευμένο μηχανισμό. Αυτή η ασυμφωνία ανάμεσα στον διαθέσιμο μηχανισμό προστασίας και στον κώδικα που εκτελείται στην πράξη δημιουργεί το κρίσιμο κενό. Η CVE-2026-78683 καταγράφεται με δικτυακό φορέα επίθεσης, χαμηλή πολυπλοκότητα και υψηλές επιπτώσεις σε εμπιστευτικότητα, ακεραιότητα και διαθεσιμότητα.
Ποιοι κινδυνεύουν από την ευπάθεια NLTK
Το ζήτημα αφορά κυρίως υπηρεσίες που χρησιμοποιούν NLTK για ανάλυση κειμένου, εκπαίδευση μοντέλων ή επεξεργασία αρχείων που προέρχονται από τρίτους. Εφαρμογές τεχνητής νοημοσύνης, εσωτερικά εργαλεία δεδομένων, σημειωματάρια και αυτοματοποιημένες ροές μηχανικής μάθησης μπορεί να είναι εκτεθειμένα, εάν κατεβάζουν ή εισάγουν μοντέλα χωρίς προηγούμενη επαλήθευση.
Η ύπαρξη της βιβλιοθήκης σε ένα περιβάλλον δεν αρκεί από μόνη της για να αποδειχθεί εκμετάλλευση. Ο κίνδυνος αυξάνεται όταν η εφαρμογή δέχεται αρχεία από χρήστες, συνεργάτες ή δημόσια αποθετήρια και τα περνά απευθείας στη TransitionParser. Οι διαχειριστές πρέπει να ελέγξουν τις πραγματικές ροές φόρτωσης και όχι μόνο τις δηλωμένες εξαρτήσεις του έργου.
Το pickle δεν είναι απλή μορφή αποθήκευσης δεδομένων. Μπορεί να περιγράψει αντικείμενα και τις διαδικασίες επανασύνδεσής τους, γι’ αυτό η φόρτωση αρχείων από μη αξιόπιστη πηγή πρέπει να αντιμετωπίζεται ως εκτέλεση κώδικα. Η πρακτική αυτή αφορά και αντίγραφα μοντέλων που μεταφέρονται μεταξύ ομάδων ή αποθηκεύονται σε κοινόχρηστα αποθετήρια.
Για τον έλεγχο του αποτυπώματος, οι υπεύθυνοι μπορούν να εξετάσουν τα αρχεία requirements.txt, poetry.lock και τα περιβάλλοντα παραγωγής, ώστε να εντοπίσουν εκδόσεις NLTK πριν από την 3.10.0. Η καταγραφή της έκδοσης πρέπει να συνδυάζεται με έλεγχο του κώδικα που καλεί τη TransitionParser.parse(), επειδή η απλή παρουσία του πακέτου δεν δείχνει αν χρησιμοποιείται η ευάλωτη διαδρομή.
Δείτε επίσης: Κρίσιμο σφάλμα στο LeRobot της Hugging Face

Άμεσες ενέργειες για προστασία από CVE-2026-78683
Η βασική ενέργεια είναι η αναβάθμιση στην έκδοση NLTK 3.10.0 ή νεότερη. Η ομάδα του έργου αναφέρει στην πολιτική ασφάλειας του NLTK ότι από την 3.10.0 εφαρμόζεται αυστηρότερη επιβολή ελέγχων από προεπιλογή. Παρ’ όλα αυτά, η αναβάθμιση πρέπει να δοκιμαστεί σε περιβάλλον ελέγχου πριν περάσει σε παραγωγή.
Μέχρι να ολοκληρωθεί η αλλαγή, οι ομάδες ανάπτυξης πρέπει να αποφεύγουν τη φόρτωση μη αξιόπιστων μοντέλων και να περιορίζουν τα δικαιώματα της υπηρεσίας. Είναι επίσης χρήσιμο να ελεγχθούν τα αρχεία καταγραφής για απρόσμενες εισαγωγές μοντέλων, αποτυχίες της TransitionParser ή διεργασίες που ξεκινούν αμέσως μετά από φόρτωση αρχείου.

Η τεχνική ομάδα του SecNews συστήνει επιπλέον την απομόνωση των υπηρεσιών επεξεργασίας, τη χρήση ελάχιστων δικαιωμάτων και την επαλήθευση της προέλευσης κάθε αρχείου μοντέλου. Η περιορισμένη αποσειριοποίηση είναι προτιμότερη από την απλή αποδοχή αρχείων, όμως δεν αντικαθιστά την επίσημη ενημέρωση της βιβλιοθήκης.
🔒 Προστατέψτε την ιδιωτικότητά σας με Proton VPN
Ελβετικό VPN από τους δημιουργούς του Proton Mail — αυστηρή πολιτική no-logs, ισχυρή κρυπτογράφηση και ενσωματωμένο NetShield που μπλοκάρει διαφημίσεις, trackers & malware.
- ✔ No-logs, με έδρα την Ελβετία (εκτός 14-Eyes)
- ✔ NetShield: φραγή διαφημίσεων, trackers & κακόβουλων domains
- ✔ Καλύπτει όλες τις συσκευές — δωρεάν έκδοση διαθέσιμη
Ο σύνδεσμος είναι συνεργατικός (affiliate) — το SecNews ενδέχεται να λάβει προμήθεια χωρίς επιπλέον κόστος για εσάς. Δεν επηρεάζει την ανεξαρτησία της αρθρογραφίας μας.
Δείτε επίσης: CVE-2026-20251: RCE στο Splunk Secure Gateway
Η μη ασφαλής αποσειριοποίηση που τεκμηριώνει η CVE-2026-78683 υπενθυμίζει ότι η ασφάλεια μιας βιβλιοθήκης δεν εξαρτάται μόνο από την έκδοση, αλλά και από τον τρόπο με τον οποίο διαχειρίζεται μη αξιόπιστα δεδομένα. Όσοι χρησιμοποιούν NLTK σε υπηρεσίες με εξωτερικές εισόδους καλούνται να καταγράψουν άμεσα την έκδοση, να αναβαθμίσουν και να επιβεβαιώσουν ότι κανένα μη ελεγμένο μοντέλο δεν φορτώνεται στην παραγωγή.
