写点什么

ChatGPT 出现重大 Bug、7 天还未完全修复, OpenAI 直指 Redis 开源库错误导致

  • 2023-03-28
    北京
  • 本文字数:3612 字

    阅读完需:约 12 分钟

ChatGPT 出现重大 Bug、7天还未完全修复, OpenAI 直指 Redis 开源库错误导致

近日,许多 ChatGPT 用户称,自己在使用 ChatGPT 时看到其他人的聊天查询列出现在了自己的历史记录中。

 

“这个应用程序正在向我显示其他人的聊天记录和内容。我没有输入任何这些提示或问题。”有推特网友称。这意味着,完全陌生的人可以使用不同的帐户查看别人的历史记录,而无需执行任何不同的操作。另外还有一些用户称自己看不到完整的聊天记录,但是可以看到对话标题。

 


该问题最早是在 3 月 20 日发现。不久后,OpenAI 将 ChatGPT 下线并调查问题,但没有立即提供导致中断的详细信息。

 

OpenAI 首席执行官 Sam Altman 在 3 月 23 日在推特上致歉,“由于开源库中的错误,我们在 ChatGPT 中遇到了一个重大问题,现在已经发布了修复程序,我们刚刚完成验证。一小部分用户能够看到其他用户对话历史的标题。我们对此感到很抱歉。”

 

次日,OpenAI 正式发布声明解释了该问题发生的原因。OpenAI 称这个错误是由 Redis 开源库中的一个错误导致的。如果两个用户差不多同时活跃,那么新创建对话的第一条消息也可能在另一个用户的聊天记录中可见。

 

另外,这个 Bug 可能导致了 1.2% ChatGPT Plus 用户的支付相关信息在无意中被泄露。一些用户可以看到另一个活跃用户的姓名、电子邮件地址、支付地址、信用卡号码的后四位数字(仅限)和信用卡到期日期。OpenAI 强调,完整的信用卡号码在任何时候都没有被曝光。

 

在声明中,OpenAI 表示“该错误现已修补”。但根据软件安全公司 Sonatype 的说法,尽管 Redis 在 4.5.3 版本和一些反向移植中发布了修复程序,但测试人员仍然能够重现该问题,因此认定其还未修复 Bug。

 

到底发生了什么?

 

根据 OpenAI 的说法,这个错误是在 Redis 客户端开源库 redis-py 中发现的。OpenAI 发现该错误后联系了 Redis 维护者并提供了一个补丁来解决这个问题。

 

OpenAI 在服务器中使用 Redis 缓存用户信息,因此不需要为每个请求检查数据库。 OpenAI 使用 Redis Cluster 将此负载分布到多个 Redis 实例上,并使用 redis-py 库来连接 Python 服务器中的 Redis ,该服务器使用 Asyncio 运行。这个库在服务器和集群之间维护一个共享连接池,并在完成后回收连接以用于处理另一个请求。

 

当使用 Asyncio 时,redis-py 的请求和响应表现为两个队列:调用者将请求推送到传入队列,然后从传出队列弹出响应,然后将连接返回到池中。

 

如果被推送到传入队列后请求被取消,但在响应从传出队列弹出之前可以看到一个 Bug:连接因此损坏,并且为无关请求退出队列的下一个响应可以接收到留在连接中的数据。

 

在大多数情况下,这会导致不可恢复的服务器错误,用户将不得不再次尝试进行请求。 但在某些情况下,损坏的数据恰好与请求者期望的数据类型相匹配,因此从缓存中返回的数据看起来是有效的,即使它属于另一个用户。

 

在太平洋时间 3 月 20 日星期一凌晨 1 点,OpenAI 团队无意中对服务器进行了更改,导致 Redis 请求取消数量激增,也使得每个连接返回错误数据的概率很小。

 

OpenAI 表示,此错误仅出现在 Redis Cluster 的 Asyncio redis-py 客户端中,现已修复。事故发生后,OpenAI 为改进系统采取了以下措施:

 

  • 对潜在 Bug 进行了大规模测试和修复。

  • 添加了冗余检查,以确保 Redis 缓存返回的数据与请求用户匹配。

  • 以编程方式检查了日志,以确保所有消息仅对正确的用户可用。

  • 关联了多个数据源来准确识别受影响的用户,以便通知相关用户。

  • 改进了日志记录,用以识别何时发生并完全确认它已停止。

  • 提高了 Redis 集群的稳健性和规模,减少在极端负载情况下出现连接错误的可能性。

 

官方声称修复 Bug 后,安全研究员 Gal Nagli 在推特上补充称,每当用户登录 ChatGPT,OpenAI 的应用程序都会从​​服务器获取用户的帐户上下文,如电子邮件、名称、图像和 accessToken,如下图所示:

 


Nagli 表示,“在高级视图中,该漏洞非常简单,如果设法强制负载均衡器将请求缓存在特定路径上,我们将能够从缓存的响应中读取受害者的敏感数据。在这种情况下,漏洞不会直接发生。为了让漏洞发挥作用,我们需要让 CF-Cache-Status 响应以确认缓存的‘HIT’,这意味着它缓存了数据,并将提供给跨同一区域的下一个请求。我们收到‘动态’响应,不会缓存数据。”

 

Nagli 称,要实现这一点,首先要创建一个特别设计的链接,将.CSS 资源附加到 "chat.openai[.]com/api/auth/session/"中,并诱骗受害者点击链接,这会让包含 accessToken 字符串的 JSON 对象被缓存在 Cloudflare 的 CDN 中。对 CSS 资源(CF-Cache-Status 头值设置为 HIT)的缓存响应然后被攻击者滥用,以获取目标的 JSON Web Token (JWT)凭据并接管帐户。

 

Nagli 说道,OpenAI 负责任地在披露后两小时内修复了这个 Bug,表明了问题的严重性。

 

Sonatype 认为,这背后是 Redis 的并发竞争问题。 Redis 团队也是对 AsyncIO 竞争条件(#2624、#2579)进行了紧急修复,但问题并没有完全解决。

 

开源软件担责吗?

 

对于 OpenAI 给出的解释,有开发者表示,“将责任推给开源可不是个好主意。”

 

“将闭源产品的错误归咎于开源库是不公平的。MIT 许可的依赖项明确表示没有任何保证。毕竟,在 ChatGPT 施加压力之前,该错误并未引起注意,而且是 ChatGPT 未能在其发布前的 QA 测试中排除该错误。”网友“abujazar”说道。

 

abujazar 认为,考虑到 OpenAI 本身在尽可能地封闭源代码,他们在声明的第一行中提到开源软件是他们中断的原因似乎有些不合适。“我认为开源作为生命的开场白,而对 Redis 团队的致谢出现在最后一行并不是巧合。许多软件工程以外的人可能会将此解读为‘开源导致 OpenAI 崩溃’。”

 

注:OpenAI 在声明的最后写道:Redis 开源维护者是出色的合作者,他们迅速解决了错误并推出了补丁。Redis 和其他开源软件在我们的研究工作中发挥着至关重要的作用。它们的重要性不可低估——如果没有 Redis,我们将无法扩展 ChatGPT。我们致力于不断支持和贡献 Redis 社区。

 

“如果 OpenAI 试图让 Redis 承担潜在的法律责任,我会非常愤怒。”有网友表示。

 

网友“YPPH”表示,“如果有人要求 ChatGPT 生成一些代码,然后不假思索地将其复制并粘贴到他们的项目中,我想知道 OpenAI 会如何看待这种说法:该错误是 ChatGPT 生成的错误代码造成的。”

 

不过也有一些网友表示,OpenAI 并没有责怪任何人,他们只是客观地表明了是那个库中的一个错误导致了问题。

 

开发者“random_cynic”表示,“讽刺的是,这种疯狂的言论对开源开发者的形象造成了比 OpenAI 或任何新闻稿更大的伤害。提到导致 Bug 的开源库是很重要的,因为许多其他使用它的应用程序可能也会发生这种情况。这基本上是开源的要点之一。

 

OpenAI,道阻且长

 

这次事件也引发了其他用户吐槽此前遇到的 Bug。“这让我想起了我遇到的第一个 Bug:通过 yahoo messenger 向自己发送一个 </html> 标签,你会随机得到一个从其他人和它的目标用户发回给你的消息对话。”网友“Greg Linares (Mantis)”表示。

 

“我有那个错误的变体,它在 0x45 (iirc) 的协议处理程序中允许用户注入格式错误的字符,并且会从消息流中泄漏,发生一次就为其他用户发送一条消息。”有网友表示,当其使用提示写出一些 React 代码时,已经发生了几次这样的错误。“它一直在提示超时,然后突然间我看到了其他人的提示。它们每次都不一样。”

 

Cyber​​haven 首席执行官 Howard Ting 表示,“数据从本地迁移到云端,下一个重大转变将是将数据迁移到这些生成的应用程序中。” 这个转变中的数据安全问题也越来越引起人们的重视。

 

员工越来越多地将敏感的业务数据和隐私信息提交给 ChatGPT,比如有高管将公司的 2023 年战略文件剪切并粘贴到 ChatGPT 中,并要求它创建一个 PowerPoint 幻灯片。但 OpenAI 是否会将这些数据整合到模型中还没有明确的表示。

 

在最近的一份报告中,数据安全服务 Cyber​​haven 检测到并阻止了其客户公司 160 万名员工中 4.2% 的人将数据输入 ChatGPT 的请求,因为存在泄露机密信息、客户数据、源代码或监管信息的风险。目前,摩根大通已经限制员工使用 ChatGPT,亚马逊、微软和沃尔玛也已向员工发出警告,要求员工谨慎使用生成式 AI 服务。

 

但上述问题并没有影响 OpenAI 的发展。不久前,OpenAI 宣布正式上线了以安全为核心的 ChatGPT 插件系统,ChatGPT 可以连接到第三方应用程序,与开发人员定义的 API 进行交互,从而增强自己的功能并允许其执行范围广泛的操作。

 

随着 OpenAI 生态的不断发展和扩大,OpenAI 必须做好应用安全运行的各方面工作。

 

参考链接:

https://news.ycombinator.com/item?id=35267569#35270165

https://blog.sonatype.com/openai-data-leak-and-redis-race-condition-vulnerability-that-remains-unfixed

https://www.bleepingcomputer.com/news/security/openai-chatgpt-payment-data-leak-caused-by-open-source-bug/

https://openai.com/blog/march-20-chatgpt-outage#technical-details

https://www.darkreading.com/risk/employees-feeding-sensitive-business-data-chatgpt-raising-security-fears

2023-03-28 15:275949

评论 1 条评论

发布
用户头像
技术细节可以参考文章
解密ChatGPT 数据泄露:Redis Bug 的深度分析
https://selfboot.cn/2023/08/02/redis_python_bug/
2023-08-03 09:48 · 广东
回复
没有更多了
发现更多内容

Magnet for mac(macOS窗口管理软件)v2.14.0中文免激活版

iMac小白

程序员如何高效学习技术?

伤感汤姆布利柏

开源 程序员 低代码 Java技术提升程序员

案例分析:如何在企业飞速发展、研发团队快速增长中,快速解决研发管理和效率问题?

爱吃小舅的鱼

产品经理 研发管理

为什么要运营海外社媒?海外云手机能发挥什么作用?

Ogcloud

短视频 社交媒体

Royal TSX for Mac(强大的远程管理软件)v6.0.2激活版

iMac小白

云图说|有了这2招必杀技,你的主机“身陷重围”都不怕!

华为云开发者联盟

云计算 华为云 主机安全 华为云开发者联盟 华为云HSS

DBeaverEE for Mac(数据库管理)v23.3.1企业激活版

iMac小白

2023-12-27:用go语言,店铺数量n,编号1~n, 人的数量m,编号1~m, 每个人有自己投票的店铺p,和改投1号店的报价x。 返回想让1号店铺成为人气最高的店,至少花多少钱? 1 <= p,

福大大架构师每日一题

福大大架构师每日一题

提升团队协作效率——SmartSVN for Mac的核心价值

iMac小白

PDF Expert for Mac(PDF编辑阅读转换器)v3.8.2中文激活版

iMac小白

Premiere Pro 2024 for Mac(PR 2024视频编辑软件)v24.1中文激活版

iMac小白

海外云手机——跨境电商必备神器

Ogcloud

云服务 跨境电商

AI 领域代币市场趋势:探索最热门投资领域的前沿动向

Footprint Analytics

区块链 AI

集成学习方法——随机森林

小齐写代码

即时通讯技术文集(第29期):IM开发技术合集(Part2) [共18篇]

JackJiang

网络编程 即时通讯 IM

Parallels Desktop 19 for Mac v19.1.0一键激活版

iMac小白

Affinity Publisher for mac(桌面排版神软件) 1.10.8完美激活版

mac

苹果mac Windows软件 Affinity Publisher 页面布局软件

热更新技术该如何选型

Geek_2305a8

一文详解kube-apiserver认证鉴权能力

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

密切关注2024年及以后的加密货币业务趋势

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

GitOps实践指南:GitOps能为我们带来什么?

阿里云大数据AI技术

IBM SPSS Statistics 27 for Mac(spss数据统计分析软件)v27.0.1中文版

iMac小白

Charles for Mac(HTTP协议抓包工具)v5.0b12注册激活版

iMac小白

如何判断Linux服务器是否被入侵了,该怎么对服务器进行安全加固

德迅云安全杨德俊

Linux 服务器安全 入侵检测

库克透露苹果已有接班人计划,或从这四人中诞生;谷歌创始人亲自给 Gemini 写代码丨 RTE 开发者日报 Vol.114

声网

软件测试/测试开发丨接口学习笔记-session、cookie、token的区别

测试人

软件测试 测试开发

ChatGPT 出现重大 Bug、7天还未完全修复, OpenAI 直指 Redis 开源库错误导致_语言 & 开发_褚杏娟_InfoQ精选文章