Check Point Research zegt in een vandaag gepubliceerd rapport dat een enkele instructie in een ChatGPT-gesprek ervoor kan zorgen dat ChatGPT stilletjes voor een aanvaller werkt terwijl hij de vraag van de gebruiker zoals gewoonlijk beantwoordt.
In de proof of concept van het bedrijf las dat verborgen werk gegevens uit het verbonden Gmail-account van de gebruiker en gaf deze door aan een tweede ChatGPT-account via een verborgen kanaal tussen de twee. Het antwoord dat de gebruiker zag, zei er niets over.
Check Point zei dat hetzelfde kanaal ook de chatgeschiedenis en de bestanden in dat gesprek kon kopiëren.
Hoeveel een aanvaller zou kunnen nemen, was afhankelijk van waartoe de sessie al toegang had, inclusief de gegevens, tools, andere verbonden apps en machtigingen.
De instructie moest in het gesprek aanwezig zijn voordat dit werkte. Check Point noemde drie manieren om het daar te krijgen: een prompt die de gebruiker plakt, een gedeeld ChatGPT-gesprek dat de gebruiker opent, of een aangepaste GPT die het in de bouwinstructies bewaart, die niet aan de gebruiker worden getoond.
Daarna was één gewoon bericht voldoende om het te starten. Check Point schreef de instructie zo dat ChatGPT in de Thinking-modus twee werkstromen in dezelfde beurt uitvoerde.
ChatGPT heeft de gebruiker geantwoord. Tegelijkertijd controleerde het een verborgen mailbox op een taak van de aanvaller, voerde die taak uit met behulp van de tools in de sessie van de gebruiker en stuurde het resultaat terug. De instructie vertelde het model om de twee stromen gescheiden te houden, zodat de verborgen taak nooit in het zichtbare antwoord verscheen.
Het enige teken dat er een app was gebruikt, was een klein label ‘Gesproken met Gmail’ boven het antwoord. Het registreerde een leesactie die al had plaatsgevonden en gaf de gebruiker geen kans om dit toe te staan of te weigeren.
Niets vroeg de gebruiker eerst vanwege de manier waarop verbonden apps standaard werken. De documentatie van OpenAI vermeldt Belangrijke acties als de standaardmachtiging, waardoor ChatGPT zonder vragen vanuit een app kan lezen. ChatGPT vraagt alleen vóór acties die een reëel effect kunnen hebben buiten ChatGPT, gevoelige informatie kunnen blootleggen of moeilijk ongedaan kunnen worden gemaakt.

Een gebruiker die elke keer gevraagd wil worden, kan overschakelen naar Altijd vragen. In Business-, Enterprise- en Edu-werkruimten kiezen beheerders welke acties elke app mag ondernemen en wie deze mag gebruiken. Apps zijn standaard ingeschakeld bij Business-abonnementen en standaard uitgeschakeld bij Enterprise en Edu.
Check Point zei dat het de bevindingen aan OpenAI heeft bekendgemaakt en dat OpenAI heeft bevestigd dat de interne dienst achter het kanaal offline is gehaald. Er is geen update die gebruikers kunnen installeren.
Het kanaal liep tussen de containers waar ChatGPT code uitvoert. ChatGPT bouwt er één voor elk gesprek wanneer een taak daarom vraagt.
De documentatie van OpenAI zegt dat de Python-omgeving die ChatGPT gebruikt voor data-analyse geen verzoeken kan doen aan het web of aan externe API’s. Check Point zei dat containers die zijn gebouwd voor afzonderlijke gesprekken, inclusief gesprekken onder verschillende accounts, ook geen direct pad naar elkaar hadden.
Zij zouden allemaal bij één interne dienst terecht kunnen komen. ChatGPT moet soms extra Python- of npm-pakketten installeren. In plaats van toe te staan dat de containers openbare pakketrepository’s bereikten, mocht elk van hen praten met een interne JFrog Artifactory-instantie die er pakketten voor ophaalde.

Die instantie liet een container benoemde waarden, genaamd eigenschappen, aan een opgeslagen bestand koppelen en deze teruglezen. De inloggegevens die de container bezat voor leestoegang waren ook voldoende om die eigenschappen te schrijven. Ze zaten in omgevingsvariabelen, waar code die door ChatGPT werd uitgevoerd, ze kon oppikken. De code hoefde geen afzonderlijk geheim te stelen of de privileges te escaleren.
De eigendommen werden niet per rekening gescheiden gehouden. Vanuit een container onder één account heeft Check Point een eigenschap met de naam chatgpt_test_ts, die de huidige tijd bevat, aan een in de cache opgeslagen bestand toegevoegd. In een gesprek onder een ander account werd de eigenschappen van dat bestand opgevraagd en kreeg het dezelfde naam en waarde.
Een eigenschap kan platte tekst of Base64 bevatten, en alles wat te groot is voor de ene eigenschap kan over meerdere worden gesplitst en aan de andere kant weer in elkaar worden gezet. Dat veranderde de metadata van de pakketdienst in een gedeeld klembord tussen containers die elkaar niet mochten bereiken.
Dit is het tweede kanaal uit hetzelfde deel van ChatGPT dat Check Point heeft gerapporteerd. In maart beschreef het er een die DNS-lookups gebruikte om gespreksgegevens naar een externe server te sturen, en zei dat OpenAI dit op 20 februari repareerde.
De zaak staat los van het Hugging Face-incident, waarbij de eigen modellen van OpenAI een interne Artifactory-instantie in een messageboard veranderden tijdens de beveiligingstests van het bedrijf.
Check Point zei dat het gevonden mechanisme anders was en beschreef het als gevallen waarin “een gedeelde interne service een onbedoelde communicatielaag werd” tussen omgevingen die bedoeld waren om geïsoleerd te blijven.
Check Point dateerde zijn werk tot juni 2026 en zei niet wanneer de zender stopte met werken, dus het rapport laat niet zien hoe lang deze open was.