本文へ移動
English version →
中 4.3

IDOR - Cross-User Chat Feedback Manipulation in AnythingLLM

GHSA-2qmm-82f7-8qj5 SecPulse初出

概要

[!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...

影響パッケージ

種類パッケージ影響を受ける版直った版
mintplexlabs/anythingllm
<= 1.11.1
7908c10379eab7a19f5f7558c1ede1aada0b0b40
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

[!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…

出典: GitHub Repository Security Advisories (Game のスタック) GitHub Advisory OSV

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく