在上周一,chatgpt 遭遇了一次用户数据泄漏事件,许多 chatgpt 的用户都在自己的历史对话中看到了其他人的对话记录。不光是对话的历史记录,不少 chatgpt plus 用户还在 reddit 和 twitter 等平台发出了截图,表示在他们的订阅页面上看到了其他人的电子邮件地址。
事件发生后,openai 临时关闭了 chatgpt 服务以调查问题,后续 open ai 的首席执行官 sam altman 也亲自发了推文,承认他们确实遭遇了重大问题,不过当时并没有公布问题的细节,只表示是一个开源库的错误导致的。
由于一个开源库的错误,我们在 chatgpt 中出现了一个重大问题,现在已经发布了一个修复程序,我们刚刚完成了验证。 一小部分用户能够看到其他用户的对话历史的标题。
经过多日的调查,openai 日前发布了一份包含技术细节的事件报告,该事件是 redis 客户端开源库中的一个错误所引发的,导致 chatgpt 服务暴露了其他用户的聊天查询历史和大约 1.2% 的 chatgpt plus 用户的个人信息。
技术细节
这个错误是在 redis 客户端开源库 redis-py 中发现的。发现这个 bug 后,openai 就立即联系了 redis 的维护者,提供了一个补丁来解决这个问题。以下是这个错误的具体细节:
openai 使用 redis 在他们的服务器中缓存用户信息,所以 chatgpt 不需要为每个请求检查数据库。
openai 使用 redis cluster 将这一负载分布到多个 redis 实例上。
openai 使用 redis-py 库,以便让用了 asyncio 的 python 服务器与 redis 对接。
该库在服务器和集群之间维护一个共享的连接池,并在完成后回收连接以用于另一个请求。
当使用 asyncio 时,redis-py 的请求和响应表现为两个队列:调用者将请求推送到传入队列,并从传出队列中弹出响应,然后将连接返回到池中。
如果在请求被推送到传入队列之后,但在响应从传出队列中弹出之前,请求被取消,我们就会看到错误:连接因此被破坏,下一个为不相关的请求出列的响应可以接收连接中留下的数据。
在大多数情况下,这会导致一个无法恢复的服务器错误,而用户将不得不重新尝试他们的请求。
但在某些情况下,损坏的数据恰好与请求者所期望的数据类型相匹配,因此从缓存中返回的数据看起来是有效的,即使这些数据属于另一个用户。
在太平洋时间 3 月 20 日星期一凌晨 1 点,openai 无意中给他们的服务器引入了一个变化,导致 redis 请求取消的情况激增。这在一定程度上引发了每个连接返回错误数据的可能性。
这个错误只出现在 redis cluster 的 asyncio redis-py 客户端,现在已经被修复。
经过深入调查,openai 发现一些用户有可能看到其他活跃用户的姓名、电子邮件地址、账单地址、信用卡号码的最后四位数和信用卡到期日,openai 特别强调道,完整的信用卡号码并没有暴露。
这部分受影响的用户占 chatgpt plus 用户总数的 1.2%,目前他们正在联系了所有受影响的 chatgpt 用户。
三星S8真机曝光:外观出乎意料,售价超越iPhone!
苹果将在明年年初的时候更新iPad mimi家族
太阳能板的制作方法(三种太阳能板制作方法)
Samtec连接器小课堂:测试绝非事后补救
带阻“行管”及带阻晶体管检测方法
ChatGPT数据泄露,技术细节公布
政策刺激 质疑声中的特斯拉一路高歌猛进
基于操作系统中的内核抽象的动态扩展技术
联想截胡小米首发 手机价格战已打响
英国小哥西洋“易容术”挑战人脸识别,结果....
比特币硬分叉产生的BCC币介绍
韩国将限制OLED生产设备的出口计划将OLED设备指定为国家核心技术
电网企业全额收购可再生能源电量的监管征求意见
欧胜的电源管理芯片WM8310已被联芯采用
水银的密度是多少?
USB3.0接口连接技术能否取代HDMI接口
一张图看懂博通高通收购案过程,过程为啥这么曲折
宜兴环科园走出“环保+物联网”发展新模式
苹果大败 5G版iPhone或推迟一年
快到离谱!?这才是我见过的GPIO翻转频率最高的MCU!