[Security] Content Moderation Bypass in Arena Side-by-Side Views (Incomplete Fix for 34eca62) #3834 漏洞概述 在 FastChat 的 Chatbot Arena 侧边栏模式中,内容审核过滤器未能正确检查对话历史。在两个文件中,仅检查了 Model A 的历史(由于错误的数组索引 而非 );在第三个文件中, 仅接收当前用户输入而非完整历史,导致所有先前对话内容完全不可见。 根本原因:修复 commit 仅修正了 中的数组索引,但遗漏了另外两个文件中的相同错误,且第三个文件存在更严重的缺失历史变体。 影响范围 受影响产品:FastChat (pip) 受影响版本:<= 0.2.36 (截至报告时最新,commit 58765CF) 严重程度:Medium-High 向量字符串:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N CWE:CWE-670: Always-Incorrect Control Flow Implementation 三个受影响位置及影响: 1. (第310行): - 使用 而非 获取右侧模型历史。 - 影响:Model B 的历史缺失,仅检查 Model A 的历史。 2. (第245行): - 同样使用 而非 。 - 影响:Model B 的历史缺失,仅检查 Model A 的历史。 3. (第314-315行) [最严重]: - 完全未构建 , 仅接收当前用户输入。 - 影响:所有对话历史缺失,仅检查当前短输入。 攻击场景(多轮攻击): 1. 用户打开匿名竞技场(Battle)标签。 2. 发送消息,两个匿名模型被分配并响应。 3. 模型 B 生成包含越界内容(如色情)的响应。 4. 用户发送后续消息。 5. 审核过滤器从 构建 —— Model B 的违规响应在 中未被包含。 6. 不标记对话,违规内容持续存在。 修复方案 代码修复补丁: POC 代码(用于识别漏洞): 修复要点: 将 改为 以获取右侧模型的正确历史。 在 中补充 的构建逻辑,确保完整历史传递给 。