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.
The attack process is described above.
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.
All community version LobeChat users using SSO/Access Code authentication, tested on version 0.162.13.
{
"cwe_ids": [
"CWE-200",
"CWE-918"
],
"github_reviewed": true,
"severity": "MODERATE",
"nvd_published_at": "2024-06-17T20:15:13Z",
"github_reviewed_at": "2024-06-17T22:28:41Z"
}