The vulnerability lies in the update_message_by_id function within backend/open_webui/routers/channels.py. The core of the issue is an improper authorization check. Instead of verifying if a user has write permission to update a message, the function only checks for read permission. This is a critical flaw because read permissions are much more broadly granted than write permissions.
The vulnerability is exacerbated by the behavior of the has_access function in backend/open_webui/utils/access_control.py. When no specific access control rules are defined for a channel, this function defaults to granting read access. This means that in a default configuration, any user who can see a message can also edit it.
The exploitation of this vulnerability allows a low-privileged authenticated user to modify any message in a standard channel, leading to a loss of data integrity. The fix, as described in the advisory, is to change the permission check in update_message_by_id from has_access(..., type="read") to has_access(..., type="write"), ensuring that only users with appropriate permissions can modify messages.