Redis 错误导致 ChatGPT 数据泄露,技术细节一并公布

在上周一,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 用户。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/234243/redis-chatgpt

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。