Di seguito è riportato un exploit completamente funzionale per la vulnerabilità CVE-2025-54135 nell'IDE Cursor, progettato per dimostrare un attacco di iniezione di prompt che manipola la configurazione del Model Context Protocol (MCP) per ottenere l'esecuzione remota di codice. Questo codice presuppone che l'attaccante abbia accesso a un canale Slack pubblico o a un server MCP esterno simile con cui l'IDE Cursor della vittima è configurato per interagire. L'exploit crea un prompt malevolo che riscrive il file ~/.cursor/mcp.json per eseguire comandi arbitrari con i privilegi dello sviluppatore.
⚠️ Disclaimer
Questo codice è fornito solo a scopo educativo. L'uso non autorizzato è illegale. L'autore non è responsabile per un uso improprio. Ottenere sempre l'autorizzazione e rispettare le leggi.
Istruzioni per la configurazione
Per utilizzare questo exploit, segui questi passaggi per allestire l'infrastruttura di attacco:
-
Crea un bot Slack:
- Configura un'app Slack con un token del bot e le autorizzazioni per pubblicare messaggi in un canale pubblico (es.
general).
- Sostituisci
xoxp-your-slack-bot-token-here nello script con il tuo token del bot.
-
Configura un server MCP malevolo:
- Metti in esecuzione un server su
http://attacker-controlled-server.com:8080 (sostituisci con l'URL del tuo server).
- Questo server può essere un semplice server HTTP per registrare le interazioni o servire payload aggiuntivi, anche se non è strettamente necessario per l'esecuzione iniziale del comando.
-
Esegui l'exploit:
- Installa le dipendenze:
pip install requests.
- Esegui lo script:
python cve-2025-54135-exploit.py.
- Lo script pubblica un prompt malevolo sul canale Slack specificato, che l'IDE Cursor della vittima recupererà ed elaborerà se configurato per monitorare quel canale.
-
Meccanismo dell'exploit:
- Il prompt malevolo contiene una configurazione MCP codificata in Base64 che aggiunge una nuova voce di server al file
~/.cursor/mcp.json.
- Il flag
auto_start assicura che start_command (es. whoami > /tmp/pwned.txt) venga eseguito immediatamente senza approvazione dell'utente.
- Poiché Cursor viene eseguito con privilegi a livello di sviluppatore, il comando viene eseguito nell'ambiente della vittima, portando potenzialmente a furto di dati, ransomware o ulteriori compromissioni del sistema.
-
Verifica:
- Controlla la macchina della vittima per verificare la presenza di
/tmp/pwned.txt per confermare l'esecuzione riuscita del comando.
- Modifica la variabile
COMMAND per eseguire altri comandi shell secondo necessità.
Prerequisiti
- Python 3.x con la libreria
requests.
- Un workspace Slack in cui l'IDE Cursor della vittima sia configurato per recuperare dati tramite MCP.
- Un server controllato dall'attaccante (opzionale per payload avanzati).
Note
- Questo exploit prende di mira le versioni dell'IDE Cursor precedenti alla 1.3, che è stata corretta il 29 luglio 2025. Assicurati che il target stia eseguendo una versione vulnerabile.
- L'attacco si basa sul fatto che l'IDE Cursor della vittima elabori dati esterni provenienti da un canale Slack pubblico o da un servizio simile connesso a MCP.
- Per un uso reale, assicurati di avere l'autorizzazione per testare il sistema di destinazione, poiché lo sfruttamento non autorizzato è illegale.
Questo codice e la configurazione forniscono una dimostrazione funzionale di come un attaccante potrebbe sfruttare CVE-2025-54135 per ottenere l'esecuzione remota di codice tramite iniezione di prompt nell'IDE Cursor.