更改类别同时编辑标题,可绕过主题标题限制

优先级/严重性:

平台

Windows 11

Google Chrome 114.0.5735.90 (官方版本) (64 位)

描述:

可以通过管理员设置配置几个关于主题标题的限制。这些包括:

  • 最小主题标题长度
  • 标题最小熵
  • 标题中的最大表情符号数
  • 允许重复的主题标题

如果用户在编辑主题标题时更改了类别,则会绕过这些限制的合规性检查。

可复现步骤:

  1. 点击“新建主题”按钮。
  2. 在帖子字段中添加一些文本。
  3. 点击“创建主题”按钮。
    :slightly_smiling_face: 出现“需要标题”错误。
  4. 在“键入标题或在此处粘贴链接”字段中添加一个符合要求的标题。
  5. 点击“创建主题”按钮。
    :slightly_smiling_face: 主题已创建。
  6. 点击主题标题右侧的铅笔图标。
    主题编辑 UI 打开。
  7. 将标题更改为 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  8. 点击主题编辑 UI 中的 按钮。
    :slightly_smiling_face: 出现对话框:

    发生错误:标题似乎不清楚,大多数单词都包含相同的字母一遍又一遍?

  9. 点击对话框中的“确定”按钮。
  10. 从类别下拉菜单中选择另一个类别。
  11. 点击主题编辑 UI 中的 按钮。
    :slightly_smiling_face: 出现对话框:

    发生错误:标题似乎不清楚,大多数单词都包含相同的字母一遍又一遍?

  12. 点击对话框中的“确定”按钮。
  13. 点击对话框中的 X 按钮。
  14. 重新加载页面。
    :bug: 尽管有相反的指示,编辑已成功。主题现在有一个违反 标题最小熵 设置的标题。
  15. 点击主题标题右侧的铅笔图标。
    主题编辑 UI 打开。
  16. 将标题更改为 🙃🙃🙃🙃🙃🙃🙃🙃 这个标题有很多表情符号
  17. 点击主题编辑 UI 中的 按钮。
    :slightly_smiling_face: 出现对话框:

    发生错误:标题不能包含超过 1 个表情符号

  18. 点击对话框中的“确定”按钮。
  19. 从类别下拉菜单中选择另一个类别。
  20. 点击主题编辑 UI 中的 按钮。
    :bug: 编辑成功。主题现在有一个包含多个表情符号的标题,违反了 标题中的最大表情符号数 设置。
  21. 点击主题标题右侧的铅笔图标。
    主题编辑 UI 打开。
  22. 将标题更改为论坛上另一个主题已使用的标题。
  23. 点击主题编辑 UI 中的 按钮。
    :slightly_smiling_face: 出现对话框:

    发生错误:标题已被使用

  24. 点击对话框中的“确定”按钮。
  25. 从类别下拉菜单中选择另一个类别。
  26. 点击主题编辑 UI 中的 按钮。
    :bug: 编辑成功。主题现在有一个重复的标题,违反了 允许重复的主题标题 设置。
  27. 点击主题标题右侧的铅笔图标。
    主题编辑 UI 打开。
  28. 删除主题标题字段中的文本。
  29. 点击主题编辑 UI 中的 按钮。
    :slightly_smiling_face: 出现对话框:

    发生多个错误:1) 标题不能为空 2) 标题太短(最小为 15 个字符) 3) 标题似乎不清楚,大多数单词都包含相同的字母一遍又一遍?

  30. 点击对话框中的“确定”按钮。
  31. 从类别下拉菜单中选择另一个类别。
  32. 点击主题编辑 UI 中的 按钮。
    :bug: 编辑成功。主题现在没有标题,违反了 最小主题标题长度 设置:
  33. 重新加载页面。
    :bug: 页面加载失败:

    此页面无法正常运行

    try.discourse.org 已将您重定向过多次数。
    尝试清除您的 cookie。
    ERR_TOO_MANY_REDIRECTS

附加背景信息

我可以在“安全模式”下的 try.discourse.org 上重现此故障。

5 个赞

我重现了 bug 的“aaaaaaaaaaaaaaaaaaaaaaaa”部分:

我已复现此问题,看起来是由于 topic_slug 不合格造成的。

在我看来,这几乎是安全问题……用户正在做他们不允许做的事情。

我将取消此列表,并优先在内部处理,我们将在未来几周内解决。

3 个赞

Sam,如果我没有使用适当的报告工作流程,我深表歉意。

1 个赞

没关系,这个尤其有点模糊。我们还没有百分之百确定它是否值得CVE,我只是格外谨慎。

4 个赞

我已经能够重现此主题中概述的所有步骤。看起来主题验证器正在正确添加错误,但更新事务在保存之前未能确保其有效。

这些问题中最大的担忧是空白/空主题标题(最后一步),主要是因为页面将不断重新加载(由此处触发的无限循环)。除此之外,这主要是一个可用性问题,因为无法从 /latest 点击主题,因为标题链接不存在。

2 个赞

@per1234 感谢您的报告。您应该已经收到了此问题的修复程序。

3 个赞

此主题在 2 天后自动关闭。不再允许回复。