SECURITY ADVISORY · ΑΝΑΛΥΣΗ ΕΥΠΑΘΕΙΑΣ SEVERITY: HIGH (RESEARCH FINDING — NO IN-THE-WILD EXPLOITATION)
Microsoft Defender Security Research · 18 Ιουνίου 2026

Όταν το Localhost
Σταμάτησε να
Είναι Ασφαλές

Μια απλή ιστοσελίδα. Ένας AI browsing agent που τη διαβάζει. Και ξαφνικά, κώδικας τρέχει στη μηχανή σου — χωρίς credentials, χωρίς κλικ, χωρίς προειδοποίηση. Η Microsoft το ονόμασε AutoJack.

Συγγραφέας: Sotirios Christodoulou 29 Ιουνίου 2026 ~25 λεπτά ανάγνωση Target: AutoGen Studio
3 chained weaknesses · localhost trust bypass · unauthenticated MCP · arbitrary command execution
01 / Τι Ακριβώς Συνέβη

Η Αποκάλυψη

Στις 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, μπορεί να εκτελέσει αυθαίρετες εντολές στον υπολογιστή.

Το Proof of Concept

Η Microsoft έδειξε agent τύπου "Web Content Summarizer" που, όταν διαβάζει μια attacker-controlled σελίδα, ανοίγει το calc.exe στον υπολογιστή του developer. Σε πραγματική επίθεση, το ίδιο primitive θα μπορούσε να εκτελέσει οποιαδήποτε εντολή — με τα δικαιώματα της διεργασίας που τρέχει το AutoGen Studio.

3
Αλυσιδωτές
ευπάθειες
0
Credentials
απαιτούνται
59K+
GitHub Stars
AutoGen
1
Σελίδα
αρκεί
Το Καλό Νέο — Διάβασέ το Προσεκτικά

Η ευπάθεια δεν έφτασε ποτέ σε 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 χωρίς να αποσυρθούν τη στιγμή της αποκάλυψης.

02 / Τεχνική Ανάλυση

Η Αλυσίδα των Τριών Αδυναμιών

Η Microsoft είναι ξεκάθαρη: καμία από τις τρεις ευπάθειες δεν είναι, μόνη της, ιδιαίτερα ανησυχητική. Μαζί, όμως, σχηματίζουν πλήρες exploit chain. Η σειρά εδώ έχει σημασία — κάθε βήμα ανοίγει την πόρτα στο επόμενο.

1
Origin Allowlist Bypass

Το MCP WebSocket εμπιστεύεται συνδέσεις που προέρχονται από localhost — λογικό μέτρο για να αποκλείσει κανονικό browser σε κακόβουλο site. Αλλά ένας browsing agent που τρέχει στην ίδια μηχανή είναι localhost. Ό,τι φορτώνει ο agent περνά αυτόματα τον έλεγχο origin.

2
Missing Authentication

Το authentication middleware του AutoGen Studio αποκλείει ρητά τα /api/mcp/* routes από ελέγχους ταυτότητας — με την υπόθεση ότι ο handler θα έκανε τον δικό του έλεγχο. Δεν τον έκανε ποτέ. Το WebSocket δεχόταν συνδέσεις χωρίς κανένα credential.

3
Unsafe Parameter Handling — Η Εκτέλεση

Το 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 απορρίπτονται αυτόματα
03 / Οπτικοποίηση

Πού Ακριβώς Σπάει το Trust Boundary

Το κρίσιμο σημείο για να καταλάβεις το AutoJack δεν είναι ο κώδικας — είναι η έννοια του ορίου εμπιστοσύνης. Πάτα τα κουμπιά παρακάτω για να δεις πώς η ίδια αρχιτεκτονική γίνεται επικίνδυνη μόνο όταν προστίθεται ένας browsing agent.

// SCENARIO SELECTOR

Το localhost ήταν για χρόνια μια ασφαλής υπόθεση: αν κάτι τρέχει στην ίδια μηχανή, εμπιστεύεται. Η Microsoft το θέτει απόλυτα ξεκάθαρα: όταν ένας agent μπορεί ταυτόχρονα να διαβάζει μη έμπιστο web περιεχόμενο και να μιλάει με προνομιούχες τοπικές υπηρεσίες, το localhost παύει να είναι όριο εμπιστοσύνης.

04 / Εμβέλεια

Ποιον Αφορά Πραγματικά;

Πριν πανικοβληθείς, διάβασε προσεκτικά την εμβέλεια. Το AutoJack δεν είναι mass-exploitation event εναντίον published package — είναι research finding σε development branch.

[✗] Plain pip install autogenstudio — Δεν επηρεάζεσαι. Το stable 0.4.2.2 δεν έχει καν MCP route.
[!] Εγκατάσταση των 0.4.3.dev1 ή 0.4.3.dev2 — Επηρεάζεσαι. Αυτά τα pre-release builds παρέμειναν στο PyPI με την ευάλωτη έκδοση του handler.
[!] Build από GitHub main πριν το commit b047730 — Επηρεάζεσαι. Κάνε pull τη νεότερη έκδοση.
[i] Άλλα MCP-based agent frameworks — Άγνωστο, αλλά το pattern είναι transferable. Η Microsoft προειδοποιεί ρητά ότι το ίδιο σχήμα ευπάθειας μπορεί να επαναληφθεί παντού όπου υπάρχει local control plane + browsing agent.

Δεν Είναι το Μοναδικό Περιστατικό

Το 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, οφείλεις να ελέγξεις την αρχιτεκτονική του — ανεξάρτητα από ποια εταιρεία το έφτιαξε.

05 / Δράση

Πώς Προστατεύεσαι Σήμερα

Αν Χρησιμοποιείς 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 Εργαλείο

01 Authentication πρέπει να εφαρμόζεται σε κάθε local control plane — ακόμα κι αν δεσμεύεται μόνο σε loopback ή φαίνεται προσβάσιμο μόνο από την ίδια μηχανή.
02 Πειράματα με agents πρέπει να τρέχουν σε isolated, low-privilege περιβάλλον — όχι στον λογαριασμό developer με πρόσβαση σε production secrets.
03 Καταγραφή (inventory) όλων των agent frameworks και MCP servers στην υποδομή σου με την ίδια σοβαρότητα όπως CI/CD components ή privileged admin consoles.
04 Μην τρέχεις development prototypes εκτεθειμένα στο internet — η ίδια η ομάδα του AutoGen Studio το χαρακτηρίζει ρητά ως "developer prototype" που δεν προορίζεται για production.

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
Αν Βρεις Activity

Αν εντοπίσεις ύποπτη δραστηριότητα σε χρονικό διάστημα που το AutoGen Studio έτρεχε με browsing ή code-execution agent: θεώρησε τη μηχανή ως πιθανώς compromised development environment. Έλεγξε το host, κάνε rotate τα developer credentials και tokens προσβάσιμα από αυτό, και έλεγξε για εγγραφές σε autostart locations.

06 / Συμπέρασμα

Το Localhost Δεν Είναι Πια Φρούριο

Για δεκαετίες, "localhost only" ήταν συνώνυμο του "ασφαλές". Developer tools, dashboards, internal APIs — όλα βασίζονταν σε αυτή την υπόθεση χωρίς δεύτερη σκέψη. Το AutoJack δείχνει γιατί αυτή η υπόθεση έχει ήδη σπάσει.

Η αιτία δεν είναι κάποιο μοντέλο AI που "σκέφτηκε λάθος". Είναι αρχιτεκτονική: όταν δίνεις σε έναν agent ταυτόχρονα δύο ικανότητες — να διαβάζει μη έμπιστο web περιεχόμενο, και να μιλάει με προνομιούχες τοπικές υπηρεσίες — δημιουργείς ένα γέφυρωμα που κανείς δεν σχεδίασε ρητά.

Το καλό νέο είναι ότι αυτή τη φορά το βρήκε η Microsoft πριν φτάσει σε κανέναν χρήστη. Το κακό νέο είναι ότι, όπως η ίδια προειδοποιεί, το ίδιο σχήμα ευπάθειας θα εμφανιστεί ξανά — σε άλλο framework, από άλλη ομάδα, ίσως όχι με την ίδια τύχη στο responsible disclosure.