Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver prompt injection to agent or connect rogue MCP client
-
DeliveryCraft SELECT wrapping side-effecting function
-
ExploitBypass run_query read-only classifier
-
ExecutionExecute DELETE/setval on PostgreSQL
-
ImpactModify or destroy data without approval
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a Tabularis instance (≤0.27.0) using its MCP run_query feature with an AI agent or MCP client connected in read-only mode against a backend (PostgreSQL) that exposes side-effecting functions such as setval, nextval, or query_to_xml. Exploitation depends on the attacker either influencing the agent via prompt injection or acting as an untrusted/malicious MCP client, and on the user operating that agent (UI:P). Limiting factors: exploitation is local to the MCP channel (AV:L), not remote/network-facing; it only matters when read-only mode is relied upon as a safety control; and impact is confined to data integrity/availability on the connected database with no confidentiality exposure. |
| Impact | This is a moderate-severity authorization flaw (CVSS 4.0 base 5.8) whose real-world risk is tightly bounded by its preconditions rather than its impact. The vector CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:H is internally consistent with the description: AV:L reflects that exploitation occurs through a locally-connected MCP client/agent rather than over the network, AT:P and UI:P capture the dependency on an AI agent processing attacker-influenced input (prompt injection) and a user operating that agent, and VI:H/VA:H with VC:N correctly captures a data-integrity/availability problem (unapproved DELETE/setval) with no confidentiality loss. PR:N indicates no authentication to the Tabularis MCP surface, but this is mitigated by AV:L and UI:P. No EPSS score, no CISA KEV listing, and no POC flag were provided in the input, so there is no signal of active or widespread exploitation; a public technical write-up (hackmd) and the exact vulnerable source lines are referenced, which lowers the bar for exploit development but does not by itself constitute confirmed exploit code. There is no SSVC decision data in the input. Net: this is a legitimate but situational issue - a priority only for environments actually running Tabularis with AI/MCP integration against writable databases, not a broad emergency. Note one tension to verify: the 'Authentication Bypass' tag conflicts with the actual weakness (CWE-863 incorrect authorization / read-only-mode bypass), which is an authorization control failure, not an authentication bypass. |
| Exploit ScenarioDerived | A user runs Tabularis (≤0.27.0) with an AI agent over MCP in read-only mode against a PostgreSQL database. An attacker plants a prompt injection in data the agent ingests, or connects as an untrusted MCP client, and submits a statement that is classified as a benign SELECT but wraps a side-effecting function (e.g., query_to_xml containing a DELETE, or setval/nextval). The run_query safety gate approves it as read-only, so the write executes without the normal approval prompt. No public exploit code is identified at time of analysis, though a technical write-up and the vulnerable code lines are publicly referenced. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Read-only mode bypass in Tabularis through 0.27.0 lets prompt-injected AI agents or untrusted MCP clients execute data-modifying SQL that the run_query safety gate misclassifies as read-only, allowing side-effecting statements such as setval, nextval, or PostgreSQL query_to_xml with an embedded DELETE to alter or destroy data without triggering an approval prompt. The issue is a local, MCP-channel authorization flaw (assessed CVSS:3.1 AV:L/AC:L/PR:N/UI:R, C:N/I:H/A:H; CVSS 4.0 base 5.8) that only matters when read-only mode is relied upon as a security control against a backend exposing such functions, and the provided CVSS vector indicates no privileges are required (PR:N) while the operator still must interact with the agent (UI:P). No public exploit code was identified at time of analysis and there is no CISA KEV listing, so risk is driven by preconditions-an exposed MCP run_query connection to PostgreSQL-rather than by active exploitation.
RemediationAI
No vendor-released patch was identified at time of analysis, and the advisory covers all Tabularis versions through 0.27.0, so administrators should plan to upgrade to the first release after 0.27.0 once it is published and meanwhile treat the built-in read-only mode as unreliable. The most effective compensating control is to enforce read-only semantics at the database rather than in the MCP gate: connect the agent using a PostgreSQL role that has no INSERT, UPDATE, DELETE, or sequence-modification privileges, or set the session to a read-only transaction (default_transaction_read_only = on), which blocks the write paths the bypass exploits-at the cost of breaking any legitimate write workflow that shares that credential. Alternatively or additionally, revoke EXECUTE on side-effecting functions from the connection role (REVOKE EXECUTE ON FUNCTION setval(...), nextval(...), query_to_xml(...) FROM the MCP role), accepting the trade-off that legitimate applications depending on sequence advancement through the same role will fail. Where practical, disable the MCP run_query capability or restrict which MCP clients and agents may connect, and do not expose production database credentials to prompt-driven agents, since prompt injection is a stated exploitation precondition. Monitor database audit logs for SELECT statements invoking setval, nextval, or query_to_xml as an interim detection measure. Consult the VulnCheck advisory (https://www.vulncheck.com/advisories/tabularis-through-0.27.0-read-only-bypass-via-mcp-run-query-select-classification) and the upstream repository (https://github.com/TabularisDB/tabularis) for updated fix guidance; released patch versions are not confirmed by the available data.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in Tabularis's Model Context Protocol (MCP) integration, specifically the run_query safety gate in src-tauri/src/mcp/mod.rs (lines ~1136-1171) and the AI activity handling in src-tauri/src/ai_activity.rs (lines ~357-416). That gate attempts to enforce a read-only mode by classifying incoming SQL statements-presumably treating statements beginning with SELECT as harmless-but it does not account for PostgreSQL functions that perform writes while being invoked through a SELECT expression. Functions such as setval and nextval mutate sequence state, and query_to_xml can encapsulate and execute embedded DML including DELETE, so a SELECT-shaped statement can carry side effects. This is CWE-863 (Incorrect Authorization): the authorization decision is based on an insufficient check of statement semantics rather than on actual capability. Because MCP is designed to let external AI agents and clients drive tool calls, a prompt-injected agent or a malicious untrusted MCP client can supply a crafted statement that passes the gate, defeating the read-only guarantee without producing an approval prompt. The CPE cpe:2.3:a:tabularisdb:tabularis:*:*:*:*:*:*:*:* marks all Tabularis builds up to and including 0.27.0 as potentially affected, with a PostgreSQL backend required for the side-effecting function classes described.
Know when Tabularis gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Exploitation runs through a local MCP agent channel (AV:L) with no authentication to that surface (PR:N) but needs a user operating the agent (UI:R); impact is unapproved writes/deletes, so I:H/A:H and C:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Tabularis through 0.27.0 contains an incorrect authorization vulnerability in the MCP run_query safety gate that allows prompt-injected agents or untrusted MCP clients to bypass read-only mode by submitting side-effecting SELECT statements. Attackers can run statements like SELECT setval, nextval, or PostgreSQL query_to_xml with embedded DELETE to modify data without approval prompts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-96430
GHSA-jj9h-m6r9-g37h
NVD
CVE.org
EPSS
VulDB
Exploit-DB