Skip to content

Unexpected API Key Leak

Moderate
arvinxx published GHSA-p36r-qxgx-jq2v Jun 17, 2024

Package

No package listed

Affected versions

<=0.162.24

Patched versions

0.162.25

Description

Summary

如果攻击者可以正常通过 SSO/Access Code 鉴权,那么他们可以通过在前端修改 Base URL 为自己的攻击 URL 并设定服务端请求来获得后端的真实 API Key。

If an attacker can successfully authenticate through SSO/Access Code, they can obtain the real backend API Key by modifying the base URL to their own attack URL on the frontend and setting up a server-side request.

Details

攻击流程如上所述。

The attack process is described above.

image

PoC

前端:

  1. 能通过基础鉴权(SSO/Access Code)
  2. 设置 Base URL 为私有的攻击地址。
  3. 设置请求方式为服务端请求。
  4. 自设的攻击地址处,可以从请求的 Header 中拿到 API Key 信息。

服务端:

  1. LobeChat 版本允许设置 Base URL
  2. 没有做出站流量白名单

Frontend:

  1. Pass basic authentication (SSO/Access Code).
  2. Set the Base URL to a private attack address.
  3. Configure the request method to be a server-side request.
  4. At the self-set attack address, retrieve the API Key information from the request headers.

Backend:

  1. The LobeChat version allows setting the Base URL.
  2. There is no outbound traffic whitelist.

Impact

使用 SSO/Access Code 鉴权的全体社区版 LobeChat 用户,测试版本 0.162.13。

All community version LobeChat users using SSO/Access Code authentication, tested on version 0.162.13.

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N

CVE ID

CVE-2024-37895

Weaknesses

Credits