IDOR - Cross-User Chat Feedback Manipulation in AnythingLLM
Résumé
[!NOTE]
Maintainer able to reproduce.
This action however has zero impact on any systems as the rating system simply is an indicator for admins who export their chats for RL/Fine-Tuning to quickly prune non-rated answers (if they use the feedback signal at all).Feedback ratings are n...
Paquets affectés
| Écosystème | Paquet | Concernées | Corrigé |
|---|---|---|---|
| mintplexlabs/anythingllm |
<= 1.11.1 |
7908c10379eab7a19f5f7558c1ede1aada0b0b40 |
Description d'origine La description telle que publiée par la source (souvent en anglais).
[!NOTE]
Maintainer able to reproduce.
This action however has zero impact on any systems as the rating system simply is an indicator for admins who export their chats for RL/Fine-Tuning to quickly prune non-rated answers (if they use the feedback signal at all).Feedback ratings are not used in any way to prioritize inference, ranking of chats or any other feature.
The chat owner can also overwrite any tampered rating at any time.
Summary
The chat feedback endpoint does not verify that the authenticated user owns the chat being rated. The ownership check filters only by workspaceId, not by user_id. Any authenticated user with access to a workspace can overwrite the feedback score
of any other user's chat in that workspace by supplying an arbitrary chatId. Because chat IDs are sequential integers, they are trivially enumerable.
Vulnerable Code
server/endpoints/workspaces.js
app.post(
"/workspace/:slug/chat-feedback/:chatId",
[validatedRequest, flexUserRoleValid([ROLES.all]), validWorkspaceSlug],
async (request, response) => {
try {
const { chatId } = request.params;
const { feedback = null } = reqBody(request);
const existingChat = await WorkspaceChats.get({
id: Number(chatId),
workspaceId: response.locals.workspace.id,
// user_id is not included - no ownership check
});
if (!existingChat) {
response.status(404).end();
return;
}
cons…
Source: GitHub Repository Security Advisories (Game のスタック) GitHub Advisory OSV
Références
- GITHUB_REPO_ADVISORY Mintplex-Labs/anything-llm