Η Αποκάλυψη
Στις 18 Ιουνίου 2026, η ομάδα Defender Security Research της Microsoft δημοσίευσε ευρήματα μιας εσωτερικής έρευνας πάνω στην ασφάλεια AI agent frameworks. Το αποτέλεσμα: μια αλυσίδα τριών ευπαθειών στο AutoGen Studio — το open-source εργαλείο πρωτοτυποποίησης της Microsoft για multi-agent AI συστήματα — που ονόμασαν AutoJack.
Το σενάριο είναι ανησυχητικά απλό: ένας developer τρέχει το AutoGen Studio με έναν browsing agent. Ο agent επισκέπτεται μια ιστοσελίδα — οποιαδήποτε ιστοσελίδα, ίσως μέσω ενός link που στάλθηκε σε prompt injection ή απλά μέσα από κανονική περιήγηση. Η σελίδα περιέχει JavaScript που ανοίγει WebSocket σύνδεση προς μια τοπική υπηρεσία. Και αυτή η σύνδεση, χωρίς κανένα credential, μπορεί να εκτελέσει αυθαίρετες εντολές στον υπολογιστή.
Η Microsoft έδειξε agent τύπου "Web Content Summarizer" που, όταν διαβάζει μια attacker-controlled σελίδα, ανοίγει το calc.exe στον υπολογιστή του developer. Σε πραγματική επίθεση, το ίδιο primitive θα μπορούσε να εκτελέσει οποιαδήποτε εντολή — με τα δικαιώματα της διεργασίας που τρέχει το AutoGen Studio.
ευπάθειες
απαιτούνται
AutoGen
αρκεί
Η ευπάθεια δεν έφτασε ποτέ σε stable release. Το stable PyPI package autogenstudio 0.4.2.2 δεν έχει καν MCP route — δεν επηρεάζεται. Το πρόβλημα υπήρχε μόνο σε development branch στο GitHub και σε δύο pre-release builds (0.4.3.dev1, 0.4.3.dev2) που παρέμεναν στο PyPI χωρίς να αποσυρθούν τη στιγμή της αποκάλυψης.
Η Αλυσίδα των Τριών Αδυναμιών
Η Microsoft είναι ξεκάθαρη: καμία από τις τρεις ευπάθειες δεν είναι, μόνη της, ιδιαίτερα ανησυχητική. Μαζί, όμως, σχηματίζουν πλήρες exploit chain. Η σειρά εδώ έχει σημασία — κάθε βήμα ανοίγει την πόρτα στο επόμενο.
Το MCP WebSocket εμπιστεύεται συνδέσεις που προέρχονται από localhost — λογικό μέτρο για να αποκλείσει κανονικό browser σε κακόβουλο site. Αλλά ένας browsing agent που τρέχει στην ίδια μηχανή είναι localhost. Ό,τι φορτώνει ο agent περνά αυτόματα τον έλεγχο origin.
Το authentication middleware του AutoGen Studio αποκλείει ρητά τα /api/mcp/* routes από ελέγχους ταυτότητας — με την υπόθεση ότι ο handler θα έκανε τον δικό του έλεγχο. Δεν τον έκανε ποτέ. Το WebSocket δεχόταν συνδέσεις χωρίς κανένα credential.
Το WebSocket δεχόταν base64-encoded server_params απευθείας από το URL και τα περνούσε σε κώδικα εκκίνησης διεργασιών — χωρίς sanitization, χωρίς allowlist. Αυτό επέτρεπε στον attacker να ορίσει και να εκτελέσει αυθαίρετες εντολές PowerShell, Bash, ή executable.
Ο Κώδικας του Exploit — Απλοποιημένη Ροή
JAVASCRIPT — ΥΠΟΘΕΤΙΚΟ ATTACKER PAGE// Σελίδα που επισκέπτεται ο browsing agent
const payload = btoa(JSON.stringify({
command: "calc.exe" // ή οτιδήποτε άλλο
}));
// Άνοιγμα WebSocket προς το τοπικό MCP endpoint
const ws = new WebSocket(
`ws://localhost:8081/api/mcp/ws/session?server_params=${payload}`
);
// Καμία authentication. Καμία προειδοποίηση.
// Η εντολή εκτελείται στο host του developer.
Το Fix — Πώς Διορθώθηκε
PATCH SUMMARY — COMMIT b047730✓ Server-side parameter binding
Το WebSocket handler δεν διαβάζει πλέον server_params από το URL.
Νέο route: POST /api/mcp/ws/connect
Οι παράμετροι αποθηκεύονται server-side, keyed by UUID session.
✓ MCP routes περνούν τώρα από το κανονικό authentication path
✓ Άγνωστα session IDs απορρίπτονται αυτόματα
Πού Ακριβώς Σπάει το Trust Boundary
Το κρίσιμο σημείο για να καταλάβεις το AutoJack δεν είναι ο κώδικας — είναι η έννοια του ορίου εμπιστοσύνης. Πάτα τα κουμπιά παρακάτω για να δεις πώς η ίδια αρχιτεκτονική γίνεται επικίνδυνη μόνο όταν προστίθεται ένας browsing agent.
Το localhost ήταν για χρόνια μια ασφαλής υπόθεση: αν κάτι τρέχει στην ίδια μηχανή, εμπιστεύεται. Η Microsoft το θέτει απόλυτα ξεκάθαρα: όταν ένας agent μπορεί ταυτόχρονα να διαβάζει μη έμπιστο web περιεχόμενο και να μιλάει με προνομιούχες τοπικές υπηρεσίες, το localhost παύει να είναι όριο εμπιστοσύνης.
Ποιον Αφορά Πραγματικά;
Πριν πανικοβληθείς, διάβασε προσεκτικά την εμβέλεια. Το AutoJack δεν είναι mass-exploitation event εναντίον published package — είναι research finding σε development branch.
Δεν Είναι το Μοναδικό Περιστατικό
Το AutoJack εντάσσεται σε ένα ευρύτερο pattern που εμφανίστηκε επανειλημμένα μέσα στο 2026:
| Ημερομηνία | Περιστατικό | Περιγραφή |
|---|---|---|
| Μάιος 2026 | Semantic Kernel RCE | CVE-2026-26030 και CVE-2026-25592 — αντίστοιχο pattern σε άλλο framework της Microsoft. |
| Μάιος 2026 | ChatGPhish | Ίδια δομική αδυναμία: τοπικές υπηρεσίες developer με implicit trust, σε συνδυασμό με agents που έχουν πρόσβαση σε μη έμπιστο web περιεχόμενο. |
| 2025 | MCP Inspector RCE | CVE-2025-49596 — έλλειψη authentication μεταξύ Inspector client και proxy, επιτρέποντας unauthenticated εκκίνηση MCP commands. |
| 18 Ιουν. 2026 | AutoJack | Η πιο πρόσφατη — και η πιο τεκμηριωμένη — εμφάνιση του ίδιου pattern. |
Η Microsoft το λέει ξεκάθαρα: "το μοτίβο (ένας agent στη μηχανή που φτάνει σε localhost υπηρεσίες) είναι ευρύτερο από αυτό το συγκεκριμένο bug." Αν τρέχεις οποιοδήποτε framework που συνδυάζει web browsing agent με τοπικό MCP server, οφείλεις να ελέγξεις την αρχιτεκτονική του — ανεξάρτητα από ποια εταιρεία το έφτιαξε.
Πώς Προστατεύεσαι Σήμερα
Αν Χρησιμοποιείς AutoGen Studio
BASH# Έλεγξε ποια έκδοση έχεις
pip show autogenstudio
# Αν βλέπεις 0.4.3.dev1 ή 0.4.3.dev2 — ΕΝΗΜΕΡΩΣΕ ΑΜΕΣΑ
pip uninstall autogenstudio
pip install autogenstudio==0.4.2.2
# Ή, αν χρειάζεσαι MCP support, χτίσε από GitHub main
# ΜΕΤΑ το commit b047730:
git clone https://github.com/microsoft/autogen
cd autogen/python/packages/autogen-studio
git log --oneline | grep b047730 # επιβεβαίωση ότι το fix υπάρχει
Γενικές Αρχές για Κάθε MCP-Based Εργαλείο
Defender Hunting Query — Αν Είσαι Security Team
KQL — MICROSOFT DEFENDER// Ανίχνευση ύποπτων child processes από autogenstudio host
DeviceProcessEvents
| where InitiatingProcessFileName has "autogenstudio"
| where FileName in~ ("calc.exe", "powershell.exe", "cmd.exe", "bash")
| where InitiatingProcessCommandLine has "mcp"
| project Timestamp, DeviceName, FileName,
ProcessCommandLine, InitiatingProcessFileName
| order by Timestamp desc
Αν εντοπίσεις ύποπτη δραστηριότητα σε χρονικό διάστημα που το AutoGen Studio έτρεχε με browsing ή code-execution agent: θεώρησε τη μηχανή ως πιθανώς compromised development environment. Έλεγξε το host, κάνε rotate τα developer credentials και tokens προσβάσιμα από αυτό, και έλεγξε για εγγραφές σε autostart locations.
Το Localhost Δεν Είναι Πια Φρούριο
Για δεκαετίες, "localhost only" ήταν συνώνυμο του "ασφαλές". Developer tools, dashboards, internal APIs — όλα βασίζονταν σε αυτή την υπόθεση χωρίς δεύτερη σκέψη. Το AutoJack δείχνει γιατί αυτή η υπόθεση έχει ήδη σπάσει.
Η αιτία δεν είναι κάποιο μοντέλο AI που "σκέφτηκε λάθος". Είναι αρχιτεκτονική: όταν δίνεις σε έναν agent ταυτόχρονα δύο ικανότητες — να διαβάζει μη έμπιστο web περιεχόμενο, και να μιλάει με προνομιούχες τοπικές υπηρεσίες — δημιουργείς ένα γέφυρωμα που κανείς δεν σχεδίασε ρητά.
Το καλό νέο είναι ότι αυτή τη φορά το βρήκε η Microsoft πριν φτάσει σε κανέναν χρήστη. Το κακό νέο είναι ότι, όπως η ίδια προειδοποιεί, το ίδιο σχήμα ευπάθειας θα εμφανιστεί ξανά — σε άλλο framework, από άλλη ομάδα, ίσως όχι με την ίδια τύχη στο responsible disclosure.
Έλεγξε Τώρα, Πριν Χρειαστεί Incident Response
Αν τρέχεις οποιοδήποτε MCP-based agent framework — AutoGen, ή οτιδήποτε άλλο — έλεγξε τις τοπικές υπηρεσίες του για authentication gaps. Το localhost δεν προστατεύει πια από μόνο του.