3月20日にOpenAIの対話型AI「ChatGPT」で、一部のユーザーに他のアクティブなユーザーのチャット履歴のタイトルが表示される問題が発生し、同社はChatGPTを一時的にオフラインにした。OpenAIは24日、問題の詳細と原因、同社の対処をまとめた報告書「March 20 ChatGPT outage: Here’s what happened」を公開した。それによると履歴のタイトルだけではなく新しく作成した会話の最初のメッセージも他のユーザーに表示されていた可能性があり、また同じバグが原因でChatGPT Plus加入者の1.2%の支払い関連情報が他のユーザーに表示された可能性も判明した。



問題の原因は、インメモリデータベースRedisのオープンソースライブラリであるredis-pyで見つかったバグだった。ライブラリはサーバーとクラスタ間の接続の共有プールを維持し、一度行われた接続を別のリクエストに再利用する。問題は、リクエストが受信キューにプッシュされた後、応答が送信キューからポップされる前にキャンセルされた場合に発生していた。通常はサーバーエラーになるが、要求者が求めていたデータ型と偶然一致すると、キャッシュから返されたものが他のユーザーのものであっても有効に見えることがあった。

このバグの影響で一部のユーザーの履歴のタイトルや会話の最初のメッセージが他のユーザーに表示され、3月20日午前1時〜午前10時(太平洋時間)の間に生成されたサブスクリプション確認のメールの一部が誤ったユーザーに送信された。それらのメールには、他のユーザーのクレジットカード番号の下4桁が含まれていた。また、同じ期間に一部のユーザーの「Manage my subcription」欄に、他のアクティブなChatGPT Plusユーザーの姓名、メールアドレス、支払い先住所、クレジットカード番号の下4桁、クレジットカードの有効期限が表示されていた可能性がある(完全なクレジットカード番号は流出していない)。

OpenAIは問題の原因を特定するとすぐにRedisのメンテナンスに連絡し、メンテナーと協力して修正をテストし、修正パッチを適用した。また、Redisクラスタの堅牢性とスケールを向上させ、極度な負荷時に接続エラーが発生する可能性を低減させた。支払い情報の漏洩については、影響を受ける可能性があるユーザーに情報流出の可能性を通知する連絡を取った。