Το MCP Python SDK — το επίσημο πακέτο ανάπτυξης για το Model Context Protocol — εντοπίστηκε να φέρει σοβαρή ευπάθεια που επιτρέπει σε κακόβουλους servers να υποκλέψουν τα OAuth credentials των εφαρμογών που το χρησιμοποιούν. Η αποκάλυψη έγινε από την εταιρεία κυβερνοασφάλειας Cycode, η οποία δημοσίευσε τα ευρήματά της στις 28 Σεπτεμβρίου 2026, ενώ οι συντηρητές του SDK εξέδωσαν αντίστοιχο security advisory την ίδια ημέρα. Η ευπάθεια αφορά εφαρμογές που χρησιμοποιούν το SDK ως MCP client μέσω HTTP και μπορούν να συνδεθούν σε server που δεν ελέγχουν πλήρως.
Δείτε επίσης: JeetBot: Κακόβουλο extension Twitch διέρρευσε OAuth tokens 31.000 χρηστών

Το Model Context Protocol (MCP) είναι ένα ανοιχτό πρότυπο που σχεδιάστηκε για να συνδέει εφαρμογές τεχνητής νοημοσύνης με εξωτερικά εργαλεία και δεδομένα. Το επίσημο Python SDK χρησιμεύει ως η κύρια βιβλιοθήκη για την κατασκευή MCP servers και clients. Η ευρεία υιοθέτησή του στο οικοσύστημα AI καθιστά την ευπάθεια ιδιαίτερα ανησυχητική, καθώς ενδέχεται να επηρεάζει μεγάλο αριθμό εφαρμογών που βασίζονται σε αυτό για αυθεντικοποίηση με εξωτερικές υπηρεσίες.
Οι επηρεαζόμενες εκδόσεις του SDK αποστέλλουν το client secret, τον authorization code και το PKCE proof key σε ένα token endpoint που ελέγχεται από τον επιτιθέμενο. Με αυτά τα δεδομένα, ο κακόβουλος χρήστης μπορεί να ζητήσει έγκυρο access token από την πραγματική υπηρεσία σύνδεσης, αποκτώντας πρόσβαση με τα ίδια δικαιώματα που έχει η εφαρμογή. Το client secret είναι μακράς διάρκειας και παραμένει έγκυρο έως ότου αλλαχθεί.
Πώς εκμεταλλεύεται η ευπάθεια του MCP Python SDK
Η λειτουργία της επίθεσης βασίζεται σε ένα θεμελιώδες κενό επαλήθευσης. Όταν ένας MCP client χρειάζεται να συνδεθεί, ρωτά τον server στον οποίο συνδέεται για τη θέση της υπηρεσίας σύνδεσής του, γνωστής ως authorization server. Στις επηρεαζόμενες εκδόσεις, το SDK δεν επαλήθευε με συνέπεια αυτήν την απάντηση. Ένας κακόβουλος server μπορούσε να ανακατευθύνει τον client σε μια υπηρεσία σύνδεσης της επιλογής του επιτιθέμενου — είτε ονομάζοντας απευθείας τον server του επιτιθέμενου, είτε παρέχοντας στοιχεία σύνδεσης που φαίνεται να δείχνουν στην πραγματική υπηρεσία του χρήστη, ενώ στην πραγματικότητα αποστέλλουν τα credentials αλλού.
Ο client στη συνέχεια αποστέλλει το client secret, τον authorization code και το PKCE proof key στον επιτιθέμενο αντί για τη νόμιμη υπηρεσία. Το PKCE proof key είναι μια εφάπαξ τιμή που σχεδιάστηκε για να αποτρέπει την επαναχρησιμοποίηση ενός κλεμμένου authorization code — η παράδοσή του στον επιτιθέμενο υπονομεύει πλήρως αυτήν την προστασία. Η Cycode επέδειξε αυτήν την ανταλλαγή σε δοκιμαστικό περιβάλλον, επιβεβαιώνοντας ότι το token που προκύπτει φέρει όλα τα δικαιώματα που έχει παραχωρηθεί στην εφαρμογή.
Η ευπάθεια βαθμολογείται ως υψηλής σοβαρότητας (7.5) για τους δύο παρόχους που λειτουργούν χωρίς ανθρώπινη παρέμβαση. Για τον interactive provider, όπου ένα άτομο πρέπει να εκκινήσει τη σύνδεση, βαθμολογείται 6.5. Αξίζει να σημειωθεί ότι ακόμα και στην περίπτωση του interactive provider, η σελίδα που εγκρίνει ο χρήστης είναι η γνήσια σελίδα σύνδεσης — τίποτα δεν φαίνεται ύποπτο, καθιστώντας την επίθεση ιδιαίτερα δύσκολη να εντοπιστεί. Δεν είχε εκχωρηθεί CVE αριθμός έως τις 29 Σεπτεμβρίου 2026.
Δείτε επίσης: ShinyHunters: Κλοπή δεδομένων Salesforce μέσω OAuth

Ποιες εφαρμογές επηρεάζει το MCP Python SDK και πώς να προστατευτείτε
Μια εφαρμογή επηρεάζεται εάν χρησιμοποιεί το MCP Python SDK ως MCP client μέσω HTTP με έναν από τους παρακάτω OAuth providers: OAuthClientProvider, ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider, ή τον deprecated RFC7523OAuthClientProvider της έκδοσης 1.x. Επιπλέον, η εφαρμογή πρέπει να μπορεί να συνδεθεί σε server που δεν ελέγχει πλήρως, ενώ κατέχει credentials για μια πραγματική υπηρεσία σύνδεσης. MCP servers που κατασκευάστηκαν με το SDK, τοπικοί (stdio) clients και clients που επισυνάπτουν τα δικά τους tokens δεν επηρεάζονται.
Η επιδιόρθωση περιλαμβάνεται στις εκδόσεις 1.30.0 και 2.2.0. Στις διορθωμένες εκδόσεις, ο client καθορίζει ποια υπηρεσία σύνδεσης αναμένει πριν ανακτήσει οποιαδήποτε στοιχεία και απορρίπτει οποιαδήποτε που καθορίζει διαφορετική. Ωστόσο, η αναβάθμιση από μόνη της δεν επιλύει πλήρως το πρόβλημα για δύο από τους παρόχους. Εάν χρησιμοποιείτε ClientCredentialsOAuthProvider ή PrivateKeyJWTOAuthProvider, το advisory αναφέρει ρητά ότι «η αναβάθμιση δεν αλλάζει τίποτα έως ότου περάσετε επίσης το issuer=» για να καθορίσετε την υπηρεσία σύνδεσης στην οποία ανήκουν αυτά τα credentials.
Ένα επιπλέον ζήτημα αφορά την ορατότητα της προειδοποίησης: στην έκδοση 1.30.0, η προειδοποίηση για αυτό είναι μια τυπική deprecation warning, την οποία η Python αποκρύπτει από προεπιλογή, καθιστώντας εύκολο να παραβλεφθεί. Ο deprecated RFC7523OAuthClientProvider δεν διαθέτει επιλογή issuer=, οπότε οι χρήστες θα πρέπει να μεταβούν σε έναν από τους άλλους δύο παρόχους. Αυτό καθιστά τη διαδικασία αποκατάστασης πιο σύνθετη από μια απλή αναβάθμιση.
Μετά την αναβάθμιση, είναι σημαντικό να διαγραφούν τυχόν αποθηκευμένες OAuth client registrations μία φορά, καθώς οι παλαιότερες δεν είναι συνδεδεμένες με υπηρεσία σύνδεσης και παραμένουν έτσι. Εάν ένας client ενδέχεται να έχει ήδη συνδεθεί σε μη αξιόπιστο server, συνιστάται να γίνει rotation του client secret και ανάκληση των tokens στην υπηρεσία σύνδεσης. Για παλαιότερες εκδόσεις, δεν υπάρχει άλλη λύση πέρα από τη σύνδεση αποκλειστικά σε αξιόπιστους MCP servers.
Ο αντίκτυπος της ευπάθειας MCP Python SDK στο οικοσύστημα AI
Η ανακάλυψη αυτής της ευπάθειας αναδεικνύει ένα ευρύτερο ζήτημα ασφάλειας στο ταχέως αναπτυσσόμενο οικοσύστημα AI και MCP. Καθώς ολοένα και περισσότερες εφαρμογές τεχνητής νοημοσύνης ενσωματώνουν εξωτερικά εργαλεία και υπηρεσίες μέσω πρωτοκόλλων όπως το MCP, η επιφάνεια επίθεσης διευρύνεται σημαντικά. Η εμπιστοσύνη που δείχνουν οι εφαρμογές στους servers με τους οποίους επικοινωνούν πρέπει να συνοδεύεται από αυστηρούς μηχανισμούς επαλήθευσης.
Αξιοσημείωτο είναι το γεγονός ότι οι έλεγχοι issuer συμπεριλήφθηκαν στις σημειώσεις έκδοσης για τις εκδόσεις 1.30.0 και 2.2.0 στις 7 Σεπτεμβρίου 2026, καταχωρημένοι ως αλλαγές συμπεριφοράς και όχι ως διόρθωση ασφαλείας. Αυτό σημαίνει ότι πολλοί developers ενδέχεται να μην έχουν αντιληφθεί τη σοβαρότητα της αλλαγής και να μην έχουν λάβει τα απαραίτητα μέτρα. Το advisory εκδόθηκε στις 28 Σεπτεμβρίου, την ίδια ημέρα που η Cycode δημοσίευσε τα ευρήματά της, δίνοντας στους χρήστες σαφή εικόνα του κινδύνου.
Δείτε επίσης: VS Code Tasks: Κλεμμένα npm και Go packages κατεβάζουν Python infostealer
🔑 Ασφαλίστε τους κωδικούς σας με Proton Pass
Password manager από την Proton — end-to-end κρυπτογράφηση, passkeys, ενσωματωμένο 2FA και παρακολούθηση για διαρροές των στοιχείων σας.
- ✔ Κρυπτογραφημένη αποθήκευση κωδικών & passkeys
- ✔ Ειδοποίηση αν κάποιος κωδικός σας διέρρευσε (Dark Web Monitoring)
- ✔ Δωρεάν έκδοση — σε όλες τις συσκευές
Ο σύνδεσμος είναι συνεργατικός (affiliate) — το SecNews ενδέχεται να λάβει προμήθεια χωρίς επιπλέον κόστος για εσάς. Δεν επηρεάζει την ανεξαρτησία της αρθρογραφίας μας.

Για τους οργανισμούς που χρησιμοποιούν εφαρμογές βασισμένες στο MCP Python SDK, η άμεση δράση είναι επιτακτική. Πέρα από την αναβάθμιση στις εκδόσεις 1.30.0 ή 2.2.0, οι ομάδες ασφαλείας θα πρέπει να ελέγξουν εάν οι εφαρμογές τους χρησιμοποιούν τους επηρεαζόμενους OAuth providers, να διαμορφώσουν σωστά την παράμετρο issuer= όπου απαιτείται, και να διενεργήσουν έλεγχο για τυχόν ύποπτες συνδέσεις σε μη αξιόπιστους servers. Η ασφάλεια του αλυσίδας εφοδιασμού λογισμικού — ιδιαίτερα σε εργαλεία AI — αποτελεί πλέον κρίσιμη προτεραιότητα για κάθε οργανισμό που αξιοποιεί σύγχρονες τεχνολογίες τεχνητής νοημοσύνης.
