Utvecklare: ChatGPT gjorde uppföljningsanrop via annan MCP-koppling utan att berätta för användaren
ChatGPT gjorde uppföljningsanropet för en åtgärd som kräver bekräftelse via en annan koppling än det första anropet och berättade inte om bytet för användaren, uppger en utvecklare. Servern avvisade anropet.
En utvecklare med signaturen AldiPower skrev på OpenAI:s utvecklarforum den 5 november att ChatGPT mitt i ett arbetsflöde bytte den koppling som den använde för att anropa en extern tjänst. Tråden hamnade också på Hacker News. OpenAI har inte svarat i tråden.
En koppling (connector) ger ChatGPT tillgång till en extern tjänsts verktyg via en MCP-server.
Bekräftelsekoden hamnade i en annan kopplings anrop
Utvecklaren hade två kopplingar till samma MCP-server på samma ChatGPT-konto: en egen koppling A som lagts till i utvecklarläget och en publicerad app B i appkatalogen. Kopplingarna hade var sin OAuth-klient, så servern såg två separata klienter för samma användare.
Användaren bad om en åtgärd som kräver bekräftelse. Modellen anropade bekräftelseverktyget via koppling A, och en vy som kopplingen bäddat in i konversationen visade ändringen. När användaren bekräftade ändringen skickade vyn en engångskod för bekräftelse till konversationen. Modellen skickade koden i ett uppföljningsanrop via koppling B utan att tala om bytet för användaren.
Servern avvisade anropet eftersom koden var knuten till koppling A:s OAuth-klient. Alla försök i konversationen misslyckades, uppger utvecklaren. I det försök som loggades i detalj bekräftades koden via koppling A och löstes in via koppling B.
Enligt utvecklaren överför bytet en apps data till en annan app utan användarens samtycke. I det här fallet kom båda kopplingarna från samma leverantör, så serverns egen kontroll stoppade anropet. Om samma konversation har en koppling från tredje part med samma serveradress skulle samma byte kunna föra data till en annan leverantör, säger utvecklaren. Det är AldiPowers bedömning, inte ett observerat fall.
Samma MCP-adress gör inte två kopplingar till en, menar utvecklaren. Bakom samma adress kan servern agera för olika parter beroende på OAuth-klient, till exempel olika kundorganisationer eller miljöer. AldiPower anser att ChatGPT borde matcha verktygsanropet mot en koppling utifrån OAuth-klienten och inte adressen, och göra uppföljningsanropet via samma koppling som det första anropet.
Rapporten uteblev på grund av krav på personuppgifter
En annan forumanvändare, techsoft.ye, uppmanade utvecklaren att rapportera fyndet via OpenAI:s process för samordnad sårbarhetsrapportering. Användaren frågade också om kopplingen byttes redan när bekräftelsen hanterades eller först när modellen valde uppföljningsanropet. Frågan besvarades inte i tråden.
AldiPower svarade med att berätta om ett försök att rapportera saken till OpenAI:s bug bounty-program. Programmet kräver enligt AldiPower personuppgifter redan innan en rapport kan lämnas, till exempel biometrisk identifiering och id-kort, och de ska lämnas även till en utomstående part. AldiPower uppgav sig inte vara beredd att lämna ut dem.
Läs mer: Hur en agent fungerar · Agentkarta