On Monday 20 March 2023, some people using ChatGPT started seeing titles from other people’s chat histories in their own. For a smaller group the exposure was worse: OpenAI says the payment-related information of 1.2% of ChatGPT Plus subscribers active during a nine-hour window may have been visible to another user.
Nobody attacked it. OpenAI’s post-mortem, published four days later, traces it to a change on its own server, a cancelled request, a pooled connection, and a bug in an open-source library. It is a clean example of a cache being trusted to know whose data it held.
OpenAI used Redis to cache user information “so we don’t need to check our database for every request,” spread across “multiple Redis instances” as a Redis Cluster. Its Python server talked to Redis through redis-py, the open-source client library, and ran on asyncio. The library kept “a shared pool of connections between the server and the cluster,” and recycled a connection for another request once done.
With asyncio, OpenAI explains, requests and responses on a connection “behave as two queues: the caller pushes a request onto the incoming queue, and will pop a response from the outgoing queue, and then return the connection to the pool.”
Cancel a request in between and “the connection thus becomes corrupted and the next response that’s dequeued for an unrelated request can receive data left behind in the connection.”
This article was aggregated automatically by CyberWire Daily's newsfeed engine. Original reporting: trustboundarystudio.com.
