Il 27 marzo, il team di OpenAI ha risolto una vulnerabilità critica in ChatGPT, che consente, all’insaputa della vittima, di assumere il controllo del suo account, visualizzare la cronologia della chat e accedere alle informazioni di pagamento. L’errore è stato segnalato alla società da Nagli bughunter il quale ha fornito una dimostrazione video.
The team at @OpenAI just fixed a critical account takeover vulnerability I reported few hours ago affecting #ChatGPT.
— Nagli (@naglinagli) March 24, 2023
It was possible to takeover someone's account, view their chat history, and access their billing information without them ever realizing it.
Breakdown below 👇 pic.twitter.com/W4kXMNy6qI
Il ricercatore è riuscito a eseguire un attacco Web Cache Deception. Durante l’esame delle richieste che elaborano il flusso di autenticazione ChatGPT, lo specialista ha notato una richiesta GET che può rivelare informazioni sull’utente: “https://chat.openai.com/api/auth/session”
Ogni volta che accedi a un’istanza di ChatGPT, l’applicazione recupera le informazioni sull’account (e-mail, nome, immagine e token di accesso) dal server.

L’esperto ha simulato una situazione in cui una vittima riceve da un utente malintenzionato un collegamento a una risorsa inesistente con un’estensione di file aggiunta all’endpoint: “chat.openai.com/api/auth/session/test.css”

OpenAI restituisce i dati sensibili in JSON dopo aver aggiunto l’estensione file “css”. Ciò potrebbe essere dovuto a un errore delle regex o semplicemente perché gli sviluppatori non hanno tenuto conto di questo vettore di attacco.
Successivamente, lo specialista ha modificato l’intestazione della risposta “CF-Cache-Status” nel valore “HIT”. Ciò significa che i dati sono stati memorizzati nella cache e verranno restituiti alla richiesta successiva allo stesso indirizzo. Di conseguenza, l’attaccante ottiene i dati necessari per intercettare il token della vittima.

Modello di attacco: