0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-11 02:59:07 +08:00
discourse/plugins/chat
Alan Guo Xiang Tan f4a9c63667
SECURITY: Enforce chat message length before cooking it (#41725)
Chat::CreateMessage and Chat::UpdateMessage cooked the full,
attacker-controlled message (markdown-it rendering in V8) before the
chat_maximum_message_length limit was enforced at save!. A single
low-privilege request with an oversized body could burn tens of seconds
of worker CPU on rendering that was immediately discarded as too long,
enabling denial of service against the shared worker pool.

Validate the message length in the service contract, which runs before
the message is cooked, so oversized input is rejected without the
expensive rendering. The model-level length validation remains as
defense in depth. The guard covers the create, edit, and
Slack-compatible incoming-webhook paths, which all route through these
services.
2026-07-16 11:10:06 +08:00
..
admin/assets/javascripts DEV: Consolidate reusable components into ui-kit (#38703) 2026-05-11 18:07:36 -03:00
app SECURITY: Enforce chat message length before cooking it (#41725) 2026-07-16 11:10:06 +08:00
assets FIX: Show flagged chat message uploads in the review queue (#41689) 2026-07-15 10:11:13 -03:00
config I18N: Update translations (#41707) 2026-07-14 19:57:09 +02:00
db A11Y: live announcements and optional sounds for chat messages (#41213) 2026-07-02 12:48:58 -04:00
lib FIX: Refresh chat reviewable payload when re-flagging an edited message (#41739) 2026-07-15 11:55:13 -03:00
public/images FEATURE: add new chat reactions popup (#41028) 2026-06-25 14:56:08 +04:00
spec SECURITY: Enforce chat message length before cooking it (#41725) 2026-07-16 11:10:06 +08:00
test/javascripts FIX: Show flagged chat message uploads in the review queue (#41689) 2026-07-15 10:11:13 -03:00
about.json
package.json DEV: Add a script for generating external types in discourse-types (#37095) 2026-03-09 20:37:43 +01:00
plugin.rb UX: Consolidate chat notifications into live notification preferences (#41538) 2026-07-14 08:32:48 +02:00
README.md
tsconfig.json DEV: Add a script for generating external types in discourse-types (#37095) 2026-03-09 20:37:43 +01:00

This plugin is still in active development and may change frequently

Documentation

The Discourse Chat plugin adds chat functionality to your Discourse so it can natively support both long-form and short-form communication needs of your online community.

For user documentation, see Discourse Chat.

For developer documentation, see Discourse Documentation.