{"id":"CVE-2026-80346","title":"StarRocks performs no privilege check when a legacy synchronous materialized view is dropped","summary":"StarRocks performs no privilege check when a legacy synchronous materialized view is dropped. Every other statement type routed through AuthorizerStmtVisitor calls into Authorizer before execution, but visitDropMaterializedViewStatement …","severity":"high","cvss":7.1,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L","cwe":["CWE-862"],"published":"2026-08-26","updated":"2026-09-23","sourceUpdated":"2026-09-23T17:17:43.060","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-80346","references":[{"url":"https://github.com/StarRocks/starrocks","label":"disclosure@vulncheck.com"},{"url":"https://github.com/StarRocks/starrocks/blob/3.5.19/fe/fe-core/src/main/java/com/starrocks/alter/AlterJobMgr.java","label":"disclosure@vulncheck.com"},{"url":"https://github.com/StarRocks/starrocks/blob/3.5.19/fe/fe-core/src/main/java/com/starrocks/sql/analyzer/AuthorizerStmtVisitor.java","label":"disclosure@vulncheck.com"},{"url":"https://github.com/StarRocks/starrocks/issues/76566","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/starrocks-through-4.0.13-missing-authorization-on-drop-materialized-view-for-legacy-synchronous-materialized-views","label":"disclosure@vulncheck.com"},{"url":"https://github.com/StarRocks/starrocks/issues/76566","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"}],"tags":["nvd"],"epss":0.00386,"epssPercentile":0.32607,"ingestedAt":"2026-08-29T21:42:34.480Z","slug":"CVE-2026-80346","body":"## Overview\n\nStarRocks performs no privilege check when a legacy synchronous materialized view is dropped. Every other statement type routed through AuthorizerStmtVisitor calls into Authorizer before execution, but visitDropMaterializedViewStatement returns immediately with a comment stating the check happens in execution logic. That holds only for asynchronous materialized views: LocalMetastore.dropMaterializedView calls Authorizer.checkMaterializedViewAction inside a branch taken when the resolved table is a MaterializedView. A legacy synchronous materialized view is stored as a rollup index on an OlapTable rather than a MaterializedView, so the other branch runs, reaching AlterJobMgr.processDropMaterializedView and MaterializedViewHandler, neither of which contains any Authorizer call. The former locates the target by scanning every OlapTable in the named database for a matching rollup index, and the latter validates only table state and name conflicts. Any authenticated account can therefore drop a legacy synchronous materialized view belonging to any database, holding no grant on the view, the base table or the database, and the drop is indistinguishable from an authorized one.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":39,"depthScoreParts":{"impact":39.1,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}