Metabase is missing authorization checks in the mutation handlers under src/metabase/glossary/api.clj. The POST /api/glossary, PUT /api/glossary/:id, and DELETE /api/glossary/:id endpoints require an authenticated session but do not verify that the caller is a data analyst or administrator before performing database operations.
The create handler accepts term and definition, the update handler accepts an entry id, term, and definition, and the delete handler accepts an id. Before the fix, these handlers performed the necessary existence checks and then created, updated, or deleted records without calling api/check-data-analyst. As a result, an authenticated account without data analyst or administrator privileges can reach the mutation endpoints directly and change the instance-wide shared glossary.
The patch adds api/check-data-analyst to all three mutation handlers and adds tests to ensure that regular authenticated users are denied. The available evidence confirms a function-level authorization failure. It does not establish that the glossary read endpoint or unrelated administrative permissions can also be bypassed through this issue.